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

相关内容

热门资讯

分辨真假!传送屋挂件(辅助挂)... 您好,传送屋挂件这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多玩家在这款游...
重大消息!奇迹思维辅助(辅助挂... 重大消息!奇迹思维辅助(辅助挂)wepoker有没有透视方法(本来存在有挂);奇迹思维辅助软件透明挂...
每日必备!四川血战到底辅助(辅... 您好:四川血战到底辅助这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌...
必知教程!微信小程序游戏破解微... 必知教程!微信小程序游戏破解微乐游戏(辅助挂)拱趴大菠萝辅助神器(一贯有挂);相信小伙伴都知道这个微...
分辨真假!闲逸辅助器(辅助挂)... 分辨真假!闲逸辅助器(辅助挂)wepoker辅助透视软件(总是有挂)是一款可以让一直输的玩家,快速成...
盘点一款!新道游app辅助器(... 盘点一款!新道游app辅助器(辅助挂)wepoker透视苹果系统(从来有挂);AI辅助机器人普及解说...
如何分辨真伪!桃乐甘肃麻将下载... 《如何分辨真伪!桃乐甘肃麻将下载辅助器(辅助挂)wepoker可以免费玩吗(本然真的是有挂)》 桃乐...
让我来分享经验!雀友会广东潮汕... 让我来分享经验!雀友会广东潮汕辅助脚本(辅助挂)xpoker辅助工具(真是真的是有挂);雀友会广东潮...
来一盘!海贝之城辅助器(辅助挂... 来一盘!海贝之城辅助器(辅助挂)aapoker辅助插件工具(一直存在有挂);一、海贝之城辅助器AI软...
重磅来袭!途游四川小程序脚本(... 重磅来袭!途游四川小程序脚本(辅助挂)wepoker私人局怎么玩(原先是有挂);途游四川小程序脚本最...