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

相关内容

热门资讯

透视透视"wepok... 透视透视"wepokerplus开挂"切实真的是有辅助技巧(哔哩哔哩)1、透视透视"wepokerp...
透视曝光"wepok... 透视曝光"wepoker提高好牌率"一贯存在有辅助脚本(哔哩哔哩);所有人都在同一条线上,像星星一样...
透视关于"aapok... 透视关于"aapoker如何设置胜率"原来真的有辅助app(哔哩哔哩)1、完成aapoker如何设置...
透视解密"佛手在线大... 透视解密"佛手在线大菠萝技巧"真是有辅助app(哔哩哔哩)佛手在线大菠萝技巧是不是有人用挂微扑克wp...
透视分享"hhpok... 透视分享"hhpoker德州有挂吗"总是真的是有辅助器(哔哩哔哩)hhpoker德州有挂吗辅助器是一...
透视揭露"wepok... 透视揭露"wepoker怎么设置房间"本来存在有辅助插件(哔哩哔哩)1、超多福利:超高返利,海量正版...
透视教你"wepok... 透视教你"wepoker辅助器最新版本更新内容"好像真的是有辅助挂(哔哩哔哩)1、该软件可以轻松地帮...
透视教你"德普之星透... 透视教你"德普之星透视辅助软件"一直真的是有辅助方法(哔哩哔哩)1、进入游戏-大厅左侧-新手福利-激...
透视曝光"哈糖大菠萝... 透视曝光"哈糖大菠萝能开挂吗"真是有辅助脚本(哔哩哔哩)1、金币登录送、破产送、升级送、活动送。详细...
透视有挂"cloud... 透视有挂"cloudpoker怎么开挂"都是真的有辅助挂(哔哩哔哩)1.cloudpoker怎么开挂...