gpt4 book ai didi

javascript - 如何检查异步函数何时通过 promise 完成执行?

转载 作者:行者123 更新时间:2023-11-30 14:30:13 25 4
gpt4 key购买 nike

我有一个异步函数正在被另一个函数调用。我想在异步函数完成执行后执行一些操作。我正在尝试使用 promise 来做到这一点。我认为我在使用 promises 时哪里出错了。这是我的代码:

function foo(){
setTimeout(()=>console.log("hello world"),1000)
}

function bar(){
return new Promise(function(resolve){
resolve(foo())
})
}

bar().then(()=>console.log("foo has completed"))

控制台甚至在异步完成执行之前就打印“foo has completed”。

最佳答案

调用 resolve 是你应该自己做的事情。由于 foo 立即返回,您的 promise 也立即得到解决。但是,如果满足您的要求,您可以执行类似下面的操作。

function foo(resolve) {
setTimeout(() => {
console.log("hello world");
resolve();
}, 1000)
}

function bar() {
return new Promise(function(resolve) {
foo(resolve)
})
}

bar().then(() => console.log("foo has completed"))

关于javascript - 如何检查异步函数何时通过 promise 完成执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51318564/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com