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

相关内容

热门资讯

第1分钟关于!功夫川嘛辅助器是... 第1分钟关于!功夫川嘛辅助器是真的假的,瓜瓜丰城双剑旧版攻略(都是真的有挂)-哔哩哔哩1、功夫川嘛辅...
七分钟必备!胡乐安庆辅助工具,... 七分钟必备!胡乐安庆辅助工具,丰城呱呱辅助器(切实有挂)-哔哩哔哩1、全新机制【胡乐安庆辅助工具软件...
七分钟推荐!新道游修改器,顺欣... 七分钟推荐!新道游修改器,顺欣茶楼开挂(都是真的有挂)-哔哩哔哩一、顺欣茶楼开挂软件透明挂的定义与意...
十分钟揭露!边锋老友内蒙古辅助... 十分钟揭露!边锋老友内蒙古辅助,丫丫老陕开挂(真是有挂)-哔哩哔哩1、十分钟揭露!边锋老友内蒙古辅助...
第四分钟专业!对战互娱有辅助吗... 第四分钟专业!对战互娱有辅助吗,小程序牵手跑得有开挂吗(都是真的有挂)-哔哩哔哩小程序牵手跑得有开挂...
第三分钟揭露!财神十三张脚本效... 第三分钟揭露!财神十三张脚本效果图,天天爱柳州辅助器(真是是有挂)-哔哩哔哩第三分钟揭露!财神十三张...
第1分钟分享!赣湘互娱透视挂,... 第1分钟分享!赣湘互娱透视挂,蜜瓜大厅辅助下载(真是是真的挂)-哔哩哔哩1、下载好蜜瓜大厅辅助下载辅...
5分钟详情!欢乐达人暗宝怎么获... 5分钟详情!欢乐达人暗宝怎么获得,山西扣点免费辅助下载(一贯有挂)-哔哩哔哩山西扣点免费辅助下载辅助...
第7分钟关于!樱花之盛有没有挂... 第7分钟关于!樱花之盛有没有挂,哈糖大菠萝提高胜率(确实真的有挂)-哔哩哔哩1)哈糖大菠萝提高胜率辅...
7分钟解迷!麻辣竞技辅助,七千... 7分钟解迷!麻辣竞技辅助,七千在线辅助(切实有挂)-哔哩哔哩1、每一步都需要思考,不同水平的挑战会更...