ASYNC/AWAIT在递归函数上无法正常工作的NodeJS项目
创始人
2024-09-21 01:30:36
0

在递归的场景下,通过使用普通的 Promise 实现,可以解决 ASYNC/AWAIT 不能正常工作的问题。具体步骤如下:

Step 1: 定义一个返回 Promise 的函数

例如,定义一个返回 Promise 的异步函数 delay

const delay = (time) =>
  new Promise((resolve) =>
    setTimeout(() => {
      console.log(`Delay ${time}ms`);
      resolve();
    }, time)
  );

Step 2: 修改递归函数,使其返回 Promise

例如,将原有的递归函数 recursive 改为返回 Promise:

const recursive = async (num) => {
  if (num <= 0) return;
  console.log(`Num: ${num}`);
  await delay(1000);
  await recursive(num - 1);
};

Step 3: 调用递归函数,使用 .then() 处理结果

例如,调用递归函数并使用 .then() 函数处理结果:

recursive(3).then(() => console.log('Done'));

完整代码示例:

const delay = (time) =>
  new Promise((resolve) =>
    setTimeout(() => {
      console.log(`Delay ${time}ms`);
      resolve();
    }, time)
  );

const recursive = async (num) => {
  if (num <= 0) return;
  console.log(`Num: ${num}`);
  await delay(1000);
  await recursive(num - 1);
};

recursive(3).then(() => console.log('Done'));

相关内容

热门资讯

透视手筋!wepoker辅助工... 透视手筋!wepoker辅助工具(WPK真假)切实存在有辅助神器(哔哩哔哩)1、透视手筋!wepok...
插件辅助挂!微乐小程序黑科技免... 插件辅助挂!微乐小程序黑科技免费,微乐山西威信小程序(透视)真是真的是有辅助教程(哔哩哔哩)1、在插...
透视阶段!We poker辅助... 透视阶段!We poker辅助器下载(WePoKer方法)果然真的有辅助教程(哔哩哔哩)暗藏猫腻,小...
透视中牌率!微乐小程序黑科技免... 透视中牌率!微乐小程序黑科技免费,微乐小程序辅助脚本靠谱的(透视)总是存在有辅助神器(哔哩哔哩)进入...
透视项目!wepoker破解游... 透视项目!wepoker破解游戏盒子(WePoKer靠谱)果然存在有辅助软件(哔哩哔哩)1、进入到w...
透视好友!微乐小程序黑科技免费... 透视好友!微乐小程序黑科技免费,微乐自建房免费脚本哪个最好用(透视)果然是真的辅助攻略(哔哩哔哩)1...
透视方案!德州透视插件(AAp... 透视方案!德州透视插件(AApoker免费)本来是真的有辅助教程(哔哩哔哩)1、任何德州透视插件透视...
透视苹果版!微乐小程序黑科技免... 透视苹果版!微乐小程序黑科技免费,微信小程序微乐辅助器ios(透视)真是有辅助插件(哔哩哔哩)小薇(...
围绕透视问题!微乐小程序免费黑... 围绕透视问题!微乐小程序免费黑科技,微乐春天扑克开挂辅助插件(透视)一贯真的是有辅助攻略(哔哩哔哩)...
透视练习!德普之星透视免费(德... 透视练习!德普之星透视免费(德普软件)确实是真的有辅助神器(哔哩哔哩)1、这是跨平台的德普之星透视免...