首先,我必须提到我已经查看了许多stackoverflow上的问题,但许多都没有回答我的问题。更不用说有许多根本就没有答案。
我该如何实现以下内容,确保functionA()
执行完成后才执行functionB()
?
注意:我不想将我的异步函数转换为new Promise(resolve=>{...})
因为我还必须将someServiceThatMakesHTTPCall()
以及在调用堆栈中的任何其他异步函数进行转换,这是一个大的改变。
function functionThatCannotHaveAsyncKeyword() {
functionA()
.then(async function() {
await functionB();
})
.then(function() {
console.log('last');
});
}
async function functionA() {
console.log('first');
await someServiceThatMakesHTTPCall();
}
async function functionB() {
console.log('second');
await someServiceThatMakesHTTPCall();
}
someServiceThatMakesHTTPCall
,因为异步函数和 Promises 没有区别。 - Christian Vincenzo Trainaasync () => true // returns Promise
- noetixasync
,因为它将返回一个被调用者 忽略 的Promise<void>
。此外,在您的情况下,return functionB()
而不是使用 async-await 就足够了。 Translated text: 如果该函数不需要被其他东西 await,则可以使用async
,因为它将返回一个Promise<void>
,该承诺将被调用者 忽略。此外,在您的情况下,只需使用return functionB()
而不是使用 async-await 即可。 - briosheje