我需要等待我的异步函数,然后返回吗?

我有两个功能。


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()?


POPMUISE
浏览 116回答 2
2回答

料青山看我应如是

我认为这里有点混乱,所以我会尝试从头开始。首先,异步函数总是返回一个承诺。如果您在其中添加另一个异步函数,您可以链接它们并在返回第一个承诺之前等待响应。但是,如果您不等待内部函数,则第一个函数将在第二个函数仍在运行时解析。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();

互换的青春

你需要等待。实际上“async/await”只是一个语法糖。你的 updateOtherThings 函数实际上返回一个 Promise,如果你不等待它,那么它就不会运行。如果你只是想开始并忘记它,那么写如下:    updateOtherThings().then(() => {});
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript