首页 > 解决方案 > 等待同步函数完成

问题描述

假设我有一个返回承诺的函数,functionThatReturnsPromise并且我在普通函数中使用该函数,normalFunction.

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

我知道我可以通过使用functionThatReturnsPromise在里面等待,但是如果我想在我在其他地方使用时完成怎么办?normalFunctionfunctionThatReturnsPromise().then(...)normalFunctionnormalFunction

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

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

标签: javascriptasynchronouses6-promise

解决方案


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

除了触发异步函数之外,normalFunction它什么也不做。

如果您想在继续之前等待异步函数完成,那么您需要进行更改normalFunction,以便它返回一个在异步函数解析之前不会解析的 Promise。

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

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

推荐阅读