我试图使用promise.all进行多个api调用,但由于某种原因,它会引发以下错误
TypeError:#不可迭代
我的Promise很简单(这可能是我第二次使用Promise.all)
minimum [ 5 ; 3 ; 8]
|> printfn "%A" // outputs: 3
问题:您知道为什么我会收到此错误吗?另外,有人还能解释我们何时在带有promise的情况下使用resolve关键字吗?
答案 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]);