Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.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 es6_Javascript_Ecmascript 6_Promise - Fatal编程技术网

编写嵌套承诺javascript es6

编写嵌套承诺javascript es6,javascript,ecmascript-6,promise,Javascript,Ecmascript 6,Promise,有人有关于如何写嵌套承诺的指南或提示吗 我正在尝试将以下嵌套for循环转换为承诺: let arr = [1, 2, 3, 4, 5] for (i = 0; i < arr.length ; i++) { for (j = i + 1; j < arr.length ; j++) { // call another asynchronous function } } 我考虑过使用Promise.all,但是for循环内部的迭代器从j=I+1开始,所

有人有关于如何写嵌套承诺的指南或提示吗

我正在尝试将以下嵌套for循环转换为承诺:

let arr = [1, 2, 3, 4, 5]


for (i = 0; i < arr.length ; i++) {

  for (j = i + 1; j < arr.length ; j++) {

      // call another asynchronous function

  }

}
我考虑过使用Promise.all,但是for循环内部的迭代器从j=I+1开始,所以我不确定如何使用Promise.all处理这个问题


提前谢谢

将它们放入一个数组中

设arr=[1,2,3,4,5] 常量承诺=[] 对于let i=0;i{ setTimeoutresolve,100[i,j]; }; } } Promise.allpromises.thenvalues=>{ console.logvalues;
};你能提供一个具体的例子吗?我不明白你想做什么。也许使用发电机会有帮助?这就很好地解释了:Promise.all接受一个数组。不管它包含多少承诺,或者这个数字与迭代计数器的关系如何。你知道如何在非嵌套循环中使用它吗?@Thijs No。如果有,async/await语法会,但这会导致顺序执行而不是并发执行。@Bergi我还要指出,它返回的承诺只与传递的数组相关。换句话说,您不能推送到您承诺的阵列。它一直在等待,并期望它等待额外的推送承诺。我在这上面见过一些旅行。