等待同步功能完成

时间:2019-07-08 13:41:22

标签: javascript asynchronous es6-promise

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

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

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

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

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

1 个答案:

答案 0 :(得分:1)

normalFunction 完成,然后执行下一行。

normalFunction只是触发一个异步函数而已。

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

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

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