此问题在此处已有答案:
When is the body of a Promise constructor callback executed?(4个回答)
2天前关闭。
我有3个使用new Promise()构造函数创建的promise,在5000 ms的延迟后,promise解析。
在函数runPromises()中,我等待这3个promise,而不使用Promise.all()。
const promise1 = new Promise((resolve) => {
setTimeout(() => {
resolve(1);
}, 5000);
});
const promise2 = new Promise((resolve) => {
setTimeout(() => {
resolve(2);
}, 5000);
});
const promise3 = new Promise((resolve) => {
setTimeout(() => {
resolve(3);
}, 5000);
});
async function runPromises() {
const value1 = await promise1;
console.log(value1);
const value2 = await promise2;
console.log(value2);
const value3 = await promise3;
console.log(value3);
}
runPromises();
字符串
我的期望是看到程序总共运行了15秒,而实际上,它运行了5秒,似乎promise是并行运行的。
你在干什么?
1条答案
按热度按时间t3irkdon1#
传递给promise构造函数的回调会立即执行。所以它们是并行执行的,对吧。把它们转换成函数:
字符串