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

相关内容

热门资讯

透视辅助!pokemmo辅助器... 透视辅助!pokemmo辅助器,哈糖大菠萝有挂吗5个常用方法(一直有挂)1、起透看视 哈糖大菠萝有挂...
透视辅助!aapoker插件下... 透视辅助!aapoker插件下载(透视)发牌逻辑(其实真的有挂)1、点击下载安装,aapoker插件...
透视教程!poker红龙辅助,... 透视教程!poker红龙辅助,epoker底牌透视(果然真的有挂)1、让任何用户在无需epoker底...
透视ai代打!aapoker怎... 透视ai代打!aapoker怎么拿好牌(透视)透视脚本下载(都是真的是有挂);1、透视ai代打!aa...
透视安卓版!智星德州插件,智星... 透视安卓版!智星德州插件,智星德州插件最新版本更新内容详解(确实是真的有挂)1、智星德州插件最新版本...
透视插件!aapoker怎么选... 透视插件!aapoker怎么选牌(透视)免费透视脚本(都是是有挂)1、aapoker怎么选牌ai辅助...
透视最新!拱趴大菠萝万能挂图解... 透视最新!拱趴大菠萝万能挂图解,大菠萝789辅助器下载(确实是有挂)1、每一步都需要思考,不同水平的...
透视ai代打!aapoker辅... 透视ai代打!aapoker辅助插件工具(透视)插件下载(总是真的是有挂);1、aapoker辅助插...
透视数据!werplan透视挂... 透视数据!werplan透视挂,wepoker安装教程(确实是有挂);1、进入游戏-大厅左侧-新手福...
透视最新!aapoker辅助器... 透视最新!aapoker辅助器是真的吗(透视)真的假的(一贯有挂)1、游戏颠覆性的策略玩法,独创攻略...