我正在尝试在promise中返回promise,但无法让它正常工作,这是我的代码
async function main() {
return new Promise((resolve, reject) => {
p = new Promise((resolve, reject) => {
f2(async() => {
resolve();
});
});
array = [];
array.push(p);
Promise.all(array).then(resolve(1));
});
}
setTimeout(async() => {
console.log(await main());
}, 0);
function f2(callback) {
console.log("h called");
setTimeout(() => {
callback();
}, 4000);
}
我希望数组会在f2()超时后解决,但它是立即解决的。任何帮助我们都将不胜感激。
发布于 2020-04-17 01:11:31
resolve函数正在被立即调用,尝试如下所示:
Promise.all(array).then(() => {
resolve(1);
});编辑:我想添加的是传递给promise的then()回调的是一条语句,使用resolve(1)是执行该代码的调用,但是通过将该函数调用包装在匿名函数声明中,整个函数声明将被传递,然后在需要时调用。
https://stackoverflow.com/questions/61255906
复制相似问题