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... 辅助透视"wepoker分析"详细辅助新版2025教程(辅助机器人透明);1分钟了解详细教程(微信 ...
透视app"hhpo... 透视app"hhpoker德州透视挂"详细辅助揭秘教程(透视有教程);hhpoker德州透视挂软件透...
透视讲解"hhpok... 透视讲解"hhpoker作弊码"详细辅助黑科技教程(模拟器哪个好用方法)准备好在hhpoker作弊码...
透视苹果版"拱趴大菠... 1、透视苹果版"拱趴大菠萝十三水作弊"详细辅助德州教程(辅助器方法);详细教程。2、拱趴大菠萝十三水...
辅助透视"德州局透视... 辅助透视"德州局透视脚本"详细辅助普及教程(私局辅助技巧)科技教程也叫必备教程,这是一款功能强大的德...
透视苹果版"wepo... 透视苹果版"wepoker新号好一点吗"详细辅助透视教程(智能辅助插件攻略)准备好在wepoker新...
透视中牌率"德普之星... 透视中牌率"德普之星怎么设置埋牌"详细辅助2025版教程(辅助机器人教程)是一款可以让一直输的玩家,...
透视好牌"拱趴大菠萝... 透视好牌"拱趴大菠萝挂怎么安装"详细辅助必备教程(永久免费脚本神器)是一款可以让一直输的玩家,快速成...
透视挂透视"wepo... 透视挂透视"wepoker代打辅助"详细辅助玩家教程(可以开辅助辅助);人气非常高,ai更新快且高清...
透视系统"德州局怎么... 这是一款非常优秀的德州局怎么透视 ia辅助检测软件,能够让你了解到德州局怎么透视中牌率当中全部隐藏参...