假设我有一个返回诺言的函数functionThatReturnsPromise,而我正在正常函数normalFunction中使用该函数。

normalFunction() {
    functionThatReturnsPromise().then(() => do something,);
}


我知道我可以使用functionThatReturnsPromisenormalFunction中等待functionThatReturnsPromise().then(...),但是如果我想在其他地方使用normalFunction时完成normalFunction怎么办?

anotherNormalFunction() {
    normalFunction() // here i want this function to finish before proceeding
                     // to the next line
}


我已经尝试过normalFunction().then(...)await normalFunction(),但是这些似乎不起作用。可能吗?

最佳答案

normalFunction将在执行下一行之前完成。

只是normalFunction除了触发异步功能外什么也不做。

如果要在继续执行之前等待异步函数完成,则需要更改normalFunction,以便它返回一个承诺,直到该异步函数已解决,该承诺才会解决。

例如该异步函数返回的承诺。

normalFunction() {
    return functionThatReturnsPromise().then(() => do something,);
}

10-08 04:59