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辅助挂... 自定义红龙poker辅助平台系统规律,只需要输入自己想要的开挂功能,一键便可以生成出微扑克专用辅助器...
透视最新!sohoo辅助(透视... 透视最新!sohoo辅助(透视)确实真的是有挂(详细辅助插件教程)1、玩家可以在软件透明挂俱乐部对游...
记者爆料!hhpoker辅助软... 1、记者爆料!hhpoker辅助软件下载,hhpoker德州牛仔视频,2025新版教程(有挂软件)。...
透视挂!pokemmo脚本手机... 透视挂!pokemmo脚本手机版(透视)一直是有挂(详细辅助2025版教程)软件透明挂微扑克wpk插...
科技新动态!pokerworl... 科技新动态!pokerworld软件,hhpoker视频巡查真的假的,AI教程(有挂透视)准备好在h...
透视私人局!竞技联盟辅助插件(... 透视私人局!竞技联盟辅助插件(透视)其实是有挂(详细辅助安装教程);该软件可以轻松地帮助玩家将透视辅...
透视挂透视!hhpkoer辅助... 透视挂透视!hhpkoer辅助器(透视)总是真的有挂(详细辅助软件教程);1. ai辅助创建新账号,...
玩家必备教程!wepoker私... 玩家必备教程!wepoker私人局辅助器怎么用,拱趴大菠萝万能挂,必备教程(有挂攻略);玩家必备必赢...
透视了解!wepoker私人局... 透视了解!wepoker私人局透视教程(透视)果然是有挂(详细辅助高科技教程)1、玩家可以在软件透明...
玩家必备科普!hhpkoer辅... 自定义hhpoker怎么防作弊系统规律,只需要输入自己想要的开挂功能,一键便可以生成出微扑克专用辅助...