TypeError:#<promise>不可迭代

时间:2018-10-29 02:39:58

标签: javascript ajax reactjs promise es6-promise

我试图使用promise.all进行多个api调用,但由于某种原因,它会引发以下错误

  

TypeError:#不可迭代

我的Promise很简单(这可能是我第二次使用Promise.all)

minimum [ 5 ; 3 ; 8]
|> printfn "%A"  // outputs: 3

问题:您知道为什么我会收到此错误吗?另外,有人还能解释我们何时在带有promise的情况下使用resolve关键字吗?

2 个答案:

答案 0 :(得分:7)

Promise.all接受一个参数,它是Promise s 的数组-后续参数将被丢弃。因此,请改为传入一个数组:

Promise.all([axiosHome,  axiosUserData])
  .then(...
  

什么时候我们使用带有promise的resolve关键字?

resolve不是关键字,它只是构造Promise时使用的常规函数​​名称:

const prom = new Promise((resolve, reject) => {
  // do some asynchronous stuff
  if (ok) resolve();
  else reject();
});

当像这样显式构造Promise时,调用resolve()来解决Promise。 (当然,可以将函数自变量命名为任何名称,不必将其命名为resolve

答案 1 :(得分:0)

Promise.all()接受方法数组(异步),并且可以将数据分配给变量 作为数组

示例:

let [axiosHomeData , axiosUserData] = await Promise.all([axiosHome,  axiosUserData]);