为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

POPMUISE 2023-08-05 20:43:56
我有两个功能。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();


查看完整回答
反对 回复 2023-08-05
?
互换的青春

TA贡献1797条经验 获得超6个赞

你需要等待。实际上“async/await”只是一个语法糖。你的 updateOtherThings 函数实际上返回一个 Promise,如果你不等待它,那么它就不会运行。如果你只是想开始并忘记它,那么写如下:

    updateOtherThings().then(() => {});


查看完整回答
反对 回复 2023-08-05
  • 2 回答
  • 0 关注
  • 112 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信