Javascript 运行multiple variable=function()并知道它们何时全部完成的最干净的方法是什么
在保存为JSON文件之前,我需要计算多个变量,这些变量是通过函数计算的。但是,当异步运行时,它们会显示为未定义。我读了很多关于承诺的书,似乎这可能是一种方式,但运行15个承诺似乎有点愚蠢,所以我想问一下是否有更干净的方式来实现这一点。下面是代码的一部分Javascript 运行multiple variable=function()并知道它们何时全部完成的最干净的方法是什么,javascript,node.js,Javascript,Node.js,在保存为JSON文件之前,我需要计算多个变量,这些变量是通过函数计算的。但是,当异步运行时,它们会显示为未定义。我读了很多关于承诺的书,似乎这可能是一种方式,但运行15个承诺似乎有点愚蠢,所以我想问一下是否有更干净的方式来实现这一点。下面是代码的一部分 var sql=“选择a.Volume、a.LastPrice、a.bullers、a.id From(从“+marketname+”ORDER BY id DESC LIMIT 1440”中选择Volume、LastPrice、bullers
var sql=“选择a.Volume、a.LastPrice、a.bullers、a.id From(从“+marketname+”ORDER BY id DESC LIMIT 1440”中选择Volume、LastPrice、bullers、id)a.id asc订单”;
查询(sql,函数(错误,结果,字段){
如果(错误)抛出错误;
result.forEach(函数(元素){
结果=结果长度;
tempArrayVol.push(元素体积);
tempArrayPrice.push(element.LastPrice);
tempArrayBuyers.push(element.buyers);
计数器++;
console.log(结果+“”+计数器);
});
var volumeaverage=((tempArrayVol.reduce(函数(acc,val){return acc+val;}))/tempArrayVol.length);
var BuyerAverage=((tempArrayBuyers.reduce(函数(acc,val){return acc+val;}))/tempArrayBuyers.length)*100);
var Price 24h=变化(前一天,tempArrayPrice[tempArrayPrice.length-1]);
//等
:
:
:
:
如果你把它们都作为
承诺运行,然后把它们传递到它里面应该是相对干净的,我想…你有15个不同的查询吗?为什么有15个承诺?这是JS,你必须接受它…如果你把它们都作为承诺运行,然后把它们传递到它里面应该是相对干净的,我想…你有15个不同的查询吗?Why 15承诺?这是JS,你必须接受它…你的意思是。然后([res1,res2,res3]=>doSomething(res1,res2,res3
或更短的)。然后(allRes=>doSomething(…allRes)
你的意思是。然后([res1,res2,res3]=>doSomething(res1,res2,res3
或更短的)。然后(allRes=>doSomething(…allRes)
Promise.all([
function1(),
function2(),
function3(),
]).then(([res1, res2, res3]) => doSomething(res1,res2,res3));
async function() {
const res1 = await func1();
const res2 = await func2();
const res3 = await func3();
// do your thing
}