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

相关内容

热门资讯

第2分钟开挂!微信小程序外辅助... 第2分钟开挂!微信小程序外辅助工具,中至余干小程序辅助安装,解密教程-2026最新版本1、中至余干小...
针对!约战破解(辅助挂)果然是... 针对!约战破解(辅助挂)果然是有挂的(有挂法门)-哔哩哔哩1、下载安装好约战破解,进入游戏主界面,点...
第六分钟开挂!新九哥破解版,蜀... 第六分钟开挂!新九哥破解版,蜀山四川智能辅助插件下载,总结教程-2026最新版本1、蜀山四川智能辅助...
相较于以往!川娱竞技血战辅助器... 相较于以往!川娱竞技血战辅助器(辅助挂)一贯确实有挂(有挂妙招)-哔哩哔哩川娱竞技血战辅助器ai黑科...
第五分钟开挂!巴郎新疆开挂,随... 第五分钟开挂!巴郎新疆开挂,随意玩免费辅助器,解密教程-2026最新版本1、完成随意玩免费辅助器透视...
今年以来!新上游辅助器(辅助挂... 今年以来!新上游辅助器(辅助挂)一贯是有挂(有挂阶段)-哔哩哔哩您好:新上游辅助器这款游戏可以开挂,...
有了最新消息!互游辅助518(... 有了最新消息!互游辅助518(辅助挂)果然是有挂的(有挂积累)-哔哩哔哩1、下载安装好互游辅助518...
2分钟开挂!蜜瓜大厅辅助免费下... 2分钟开挂!蜜瓜大厅辅助免费下载,丰县14张脚本,介绍教程-2026最新版本1、玩家可以在蜜瓜大厅辅...
透视脚本!WePOKer辅助软... 透视脚本!WePOKer辅助软件挂,wepoker可以透视吗,(终于清楚外挂辅助插件)是一款可以让一...
脚本辅助!wepoker的10... 脚本辅助!wepoker的10个必赢技巧,wepoker有挂吗透视软件,(关于外挂辅助下载)是一款可...