我使用 Promise.all the trig a function 在所有 Promise 都得到解决后。
它有效,但我不明白为什么要调用一个函数,我必须使用 anonimus 函数,并且我不能直接调用我的函数。 这就是例子。
Promise.all(jarOfPromise)
.then(_ => {
drawAllCard(images);
});
//.then(drawAllCard(images));
如果我像这样直接调用该函数:
Promise.all(jarOfPromise)
.then(drawAllCard(images));
它不起作用,有任何错误。
我尝试寻找原因,但没有找到任何解释。
当你这样做时:
Promise.all(jarOfPromise)
.then(drawAllCard(images));
您正在立即致电
drawAllCard(images)
。这不是传递稍后可以调用的回调的正确方法。
实际发生的情况是,Javascript 解释器看到此语句后会立即计算
drawAllCard(images)
以从中获取返回值,然后将该结果传递给 Promise.all().then(x)
。
你的第二个例子相当于这个:
const temp = drawAllCard(images);
Promise.all(jarOfPromise).then(temp);