Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 运行multiple variable=function()并知道它们何时全部完成的最干净的方法是什么_Javascript_Node.js - Fatal编程技术网

Javascript 运行multiple variable=function()并知道它们何时全部完成的最干净的方法是什么

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

在保存为JSON文件之前,我需要计算多个变量,这些变量是通过函数计算的。但是,当异步运行时,它们会显示为未定义。我读了很多关于承诺的书,似乎这可能是一种方式,但运行15个承诺似乎有点愚蠢,所以我想问一下是否有更干净的方式来实现这一点。下面是代码的一部分

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
}