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

相关内容

热门资讯

透视软件!hhpoker到底可... 透视软件!hhpoker到底可以作必弊吗(透视)雀友会手机透视辅助器app(都是有辅助工具)-哔哩哔...
透视系统!wpk模拟器(透视)... 透视系统!wpk模拟器(透视)微信小程序多乐辅助器下载(一贯有辅助插件)-哔哩哔哩1、下载好微信小程...
连日来!pokemmo辅助器(... 连日来!pokemmo辅助器(透视)游戏破解器100%破解(切实真的有辅助神器)-哔哩哔哩游戏破解器...
不少玩家反映!wepoker私... 不少玩家反映!wepoker私局辅助(透视)欢乐达人破解器(好像真的有辅助插件)-哔哩哔哩;1、起透...
最新消息!pokerworld... 最新消息!pokerworld修改器(透视)皮皮辅助软件是真的吗(其实有辅助神器)-哔哩哔哩1、金币...
据相关数据显示!拱趴游戏破解器... 据相关数据显示!拱趴游戏破解器(透视)小程序牵手跑得辅助器下载(总是存在有辅助平台)-哔哩哔哩进入游...
针对!wpk软件是正规的吗(透... 针对!wpk软件是正规的吗(透视)宝宝浙江辅助器(总是存在有辅助安装)-哔哩哔哩1、起透看视 宝宝浙...
透视美元局!wepokerpl... 透视美元局!wepokerplus透视脚本免费(透视)邳州友友有没有辅助软件(竟然存在有辅助工具)-...
有玩家发现!wejoker辅助... 有玩家发现!wejoker辅助脚本(透视)指尖四川刷无限钻石(其实真的有辅助安装)-哔哩哔哩1、指尖...
透视数据!红龙poker辅助(... 透视数据!红龙poker辅助(透视)老友广东辅助工具下载(原来真的有辅助修改器)-哔哩哔哩所有人都在...