系统、网站、API站点,简单高效开发

js/jsfun/fnAsync.js  异步执行

fnAsync.js 异步执行 * 异步执行,无返回值; 函数名称必须是字符串,不能为变量,如: fnAsync_run("fnLog", {"title": "AAAAA"}) 异步组执行,有返回值,最后一个变量为函数的执行参数,且个数需要要执行的函数个数一致。 * 同步执行,但同时执行多个异步进程,最终返回json数据;需要确保执行函数存在;执行时间为最长函数执行时间;返回时JSON属性为tag的值 let data = [{"title": "AAAAA"}, {"title": "BBBBB"}] fnAsync_runGroup("fnLogGroup1", "fnLogGroup2", data) /** * 异步 * @param params * @jssaas url /funAsync.html * @jssaas method get * @jssaas timeout 200000 */ function main_fun_async(params) { let t1 = fnTime_timestampMilli(); fnAsync_run("fnLog", {"title": "AAAAA"}) let t2 = fnTime_timestampMilli(); return fnRenderTemplate("/html/async.html", {"msg": "已经执行异步,异步10次,时间:" + (t2 - t1)}) } /** * 异步日志 * @param params * @jssaas url /funAsync_log.html * @jssaas method get * @jssaas timeout 200000 */ function main_fun_async_log(params) { let file = fnJsa_rootPath() + "/aa.txt"; let exist = fnIO_exist(file); if (exist) { let content = fnIO_getFileContent(file) return fnRenderText(content); } return fnRenderText("日志还未写入"); } /** * 异步 * @param params * @jssaas url /funAsyncGroup.html * @jssaas method get * @jssaas timeout 200000 */ function main_fun_asyncGroup(params) { let t1 = fnTime_timestampMilli(); let data = [{"title": "AAAAA"}, {"title": "BBBBB"}] fnAsync_runGroup("fnLogGroup1", "fnLogGroup2", data) let t2 = fnTime_timestampMilli(); return fnRenderTemplate("/html/async.html", {"msg": "已经执行异步组,时间:" + (t2 - t1)}) } function fnLog(params) { let file = fnJsa_rootPath() + "/aa.txt"; for (let i = 0; i < 10; i++) { params["time"] = fnTime_timestamp(); let content = fnIO_getFileContent(file) content = JSON.stringify(params) + "\n
" + content fnIO_saveFile(file, content, true) fnTime_sleep(2000); } } function fnLogGroup1(params) { let file = fnJsa_rootPath() + "/aaa.txt"; params["time"] = fnTime_timestamp(); let content = "" if(fnIO_exist(file)){ content=fnIO_getFileContent(file) } content = JSON.stringify(params) + "\n
" + content fnIO_saveFile(file, content, true) fnTime_sleep(2000); return "fnLogGroup1" } function fnLogGroup2(params) { let file = fnJsa_rootPath() + "/aaa.txt"; params["time"] = fnTime_timestamp(); let content = "" if(fnIO_exist(file)){ content=fnIO_getFileContent(file) } content = JSON.stringify(params) + "\n
" + content fnIO_saveFile(file, content, true) fnTime_sleep(5000); return "fnLogGroup2" }

备案号:闽ICP备20003806号     厦门市湖里区陈朝能网络技术工作室