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

相关内容

热门资讯

玩家爆料作弊器app!去玩麻将... 玩家爆料作弊器app!去玩麻将多功能作弊器app,去玩麻将一贯是真的有作弊器app1、许多玩家不知道...
重大通报辅助器插件!小甘麻将多... 重大通报辅助器插件!小甘麻将多功能辅助器插件,小甘麻将确实存在有辅助器插件1、该软件可以轻松地帮助玩...
最新技巧辅助工具!嵘聚多功能辅... 最新技巧辅助工具!嵘聚多功能辅助工具,嵘聚真是有辅助工具1)嵘聚免费钻石:进一步探索嵘聚免费脚本大陆...
让我来分享经验透视器软件!博雅... 让我来分享经验透视器软件!博雅地方棋牌多功能透视器软件,博雅地方棋牌总是真的有透视器软件1、这是跨平...
热点推荐透视挂软件!千游科技多... 热点推荐透视挂软件!千游科技多功能透视挂软件,千游科技原来是真的有透视挂软件1、千游科技免费脚本咨询...
今日焦点辅助技巧!梦黄麻将多功... 今日焦点辅助技巧!梦黄麻将多功能辅助技巧,梦黄麻将一贯存在有辅助技巧1、完成梦黄麻将辅助器v3.3的...
指导大家透视器插件!云鹤九霄多... 指导大家透视器插件!云鹤九霄多功能透视器插件,云鹤九霄一贯是有透视器插件1、云鹤九霄模拟器是什么优化...
科技分享透视器技巧!天天大冶麻... 科技分享透视器技巧!天天大冶麻将多功能透视器技巧,天天大冶麻将原来有透视器技巧;1、进入游戏-大厅左...
技术分享透视挂app!温岭逸趣... 技术分享透视挂app!温岭逸趣麻将多功能透视挂app,温岭逸趣麻将总是真的有透视挂app所有人都在同...
玩家科普外挂app!欢乐碰胡多... 玩家科普外挂app!欢乐碰胡多功能外挂app,欢乐碰胡其实真的有外挂app1、金币登录送、破产送、升...