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'));

相关内容

热门资讯

微乐小程序透视挂!微乐游戏小程... 微乐小程序透视挂!微乐游戏小程序辅助器免费(开挂)插件-真是详细是真的挂1、免费脚本咨询教程、免费脚...
微信小程序微乐破解器!微乐小程... 微信小程序微乐破解器!微乐小程序自建房透视下载(开挂)挂-好像总结是有挂1、透视辅助软件激活码多个强...
微乐小程序黑科技免费!微乐四川... 微乐小程序黑科技免费!微乐四川小程序修改器(开挂)工具-真是详情是有挂1、在插件功能辅助器技巧中,中...
微乐小程序黑科技!小程序微乐辅... 微乐小程序黑科技!小程序微乐辅助器ios(开挂)器-本来专业真的有挂1、实时透视辅助更新:用户可以随...
微乐小程序存在有挂!2025微... 微乐小程序存在有挂!2025微乐小程序黑科技(开挂)工具-本来了解有挂1、不需要AI权限,帮助你快速...
微乐小程序透视辅助!微乐小程序... 微乐小程序透视辅助!微乐小程序自建房辅助器下载(开挂)攻略-真是分享存在有挂1、每一步都需要思考,不...
微乐小程序透视辅助!微乐智能辅... 微乐小程序透视辅助!微乐智能辅助app(开挂)插件-都是必备真的是有挂1、破解器简单,机器人操作,插...
微乐小程序存在有挂!微乐小程序... 微乐小程序存在有挂!微乐小程序辅助器(开挂)教程-都是揭幕是有挂1、实时透视辅助更新:用户可以随时随...
微乐小程序黑科技免费!微乐家乡... 微乐小程序黑科技免费!微乐家乡麻辣自建房辅助app(开挂)攻略-总是普及有挂1、完成辅助器v3.3的...
微乐小程序存在有挂!微信小程序... 微乐小程序存在有挂!微信小程序微乐辅助器ios(开挂)工具-确实曝光是有挂1、该软件可以轻松地帮助玩...