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

相关内容

热门资讯

推荐一款!wpk透视工作室(辅... 推荐一款!wpk透视工作室(辅助挂)一直是有挂(有挂教学)1、这是跨平台的wpk透视工作室轻量版有透...
分享认知!wepoker有辅助... 分享认知!wepoker有辅助吗(辅助挂)都是存在有挂(有挂分享)1、点击下载安装,wepoker有...
科技介绍!pokerworld... 科技介绍!pokerworld辅助器(辅助挂)本来真的有挂(有挂规律)科技介绍!pokerworld...
详细说明!wepoker透视功... 详细说明!wepoker透视功能下载(辅助挂)竟然是有挂(有挂助手)1、点击下载安装,wepoker...
技巧知识分享!hhpkoer辅... 技巧知识分享!hhpkoer辅助器(辅助挂)总是是有挂(有挂分析)1、很好的工具软件,可以解锁游戏的...
总算了解!佛手在线大菠萝为什么... 总算了解!佛手在线大菠萝为什么都输(辅助挂)好像存在有挂(有挂秘籍)1、用户打开应用后不用登录就可以...
玩家必备科技!wepoker辅... 玩家必备科技!wepoker辅助软件视频(辅助挂)总是是真的有挂(有挂透视)一、wepoker辅助软...
今日重大通报!hh poker... 今日重大通报!hh poker插件下载(辅助挂)真是真的有挂(有挂分析)1、完成hh poker插件...
今日头条!聚星ai辅助工具下载... 今日头条!聚星ai辅助工具下载(辅助挂)原来是有挂(有人有挂)1、首先打开聚星ai辅助工具下载辅助器...
记者揭秘!wepoker辅助软... 记者揭秘!wepoker辅助软件视频(辅助挂)切实存在有挂(有挂分析)1、该软件可以轻松地帮助玩家将...