我有两个功能。1.async function firstFunction() { // Do stuff here // I can't just return doSomeOtherThings because the firstFunction // returns different data then what doSomeOtherThings does doSomeOtherThings(); return;}async function doSomeOtherThings() { // do promise stuff here // this function runs some db operations}如果我运行,firstFunction();它会执行我的doSomeOtherThings()函数,还是会提前返回并导致部分或全部 doSomeOtherThings 代码不被执行?我需要做什么吗await doSomeOtherThings()?
2 回答
料青山看我应如是
TA贡献1772条经验 获得超8个赞
我认为这里有点混乱,所以我会尝试从头开始。
首先,异步函数总是返回一个承诺。如果您在其中添加另一个异步函数,您可以链接它们并在返回第一个承诺之前等待响应。但是,如果您不等待内部函数,则第一个函数将在第二个函数仍在运行时解析。
async function firstFunction() {
if (I want to wait for doSomeOtherThings to finished before ending firstFunction){
await doSomeOtherThings();
} else if (I can finish firstFUnction and let doSomeOtherTHings finish later){
doSomeOtherThings
}
return;
}
async function init() {
const apiResponse = await firstFunction();
};
init();
互换的青春
TA贡献1797条经验 获得超6个赞
你需要等待。实际上“async/await”只是一个语法糖。你的 updateOtherThings 函数实际上返回一个 Promise,如果你不等待它,那么它就不会运行。如果你只是想开始并忘记它,那么写如下:
updateOtherThings().then(() => {});
添加回答
举报
0/150
提交
取消