我不确定在这种情况下如何使用 Promise:
我有一个异步函数,它有一些回调,我想等待它完成。
async function test() {
someCall.then((res) => {
return res;
});
}
var response = await test();
我必须做什么,以便在调用
test()
时等待 someCall
完成并给出返回值?
如果在
someCall.then(() => {})
内部返回,则返回命令仅终止 then
块,并且返回值只能在 test
函数的作用域内访问。
在这种情况下,你可以;
返回承诺:
async function test() {
return new Promise((resolve, reject) => {
someCall().then(res => {
resolve(res)
}).catch(error => {
reject(error)
})
})
}
var response = await test();
使用await(最好与try-catch块一起使用):
async function test () {
try {
const res = await someCall();
return res;
}
catch (error) {
return error;
}
}
var response = await test();
希望这个答案有帮助。