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

相关内容

热门资讯

解谜透视!竞技联盟透视插件,p... 解谜透视!竞技联盟透视插件,pokermaster破解版(透视)都是真的是有辅助神器(哔哩哔哩);1...
专业透视!智星德州辅助译码插件... 专业透视!智星德州辅助译码插件靠谱吗,拱趴大菠萝有什么挂(透视)果然是有辅助攻略(哔哩哔哩)1.智星...
专业透视!pokemmo辅助工... 专业透视!pokemmo辅助工具,哈糖大菠萝怎么挂(透视)其实是真的有辅助攻略(哔哩哔哩)1、该软件...
详情透视!智星德州插件,拱趴大... 详情透视!智星德州插件,拱趴大菠萝挂哪里(透视)确实是真的有辅助教程(哔哩哔哩)所有人都在同一条线上...
揭露透视!哈糖大菠萝有挂吗5个... 揭露透视!哈糖大菠萝有挂吗5个常用方法,拱趴大菠萝怎么开挂(透视)果然存在有辅助技巧(哔哩哔哩)亲,...
揭幕透视!pokermaste... 揭幕透视!pokermaster破解版,德州来玩辅助器(透视)都是一直总是有辅助神器(哔哩哔哩)1)...
辅助透视!xpoker辅助神器... 您好,哈糖大菠萝攻略这款游戏可以开挂的,确实是有挂的,需要了解加去威信【136704302】很多玩家...
解密透视!智星德州有脚本吗,智... 解密透视!智星德州有脚本吗,智星德州插件怎么下载(透视)好像一直都是有辅助教程(哔哩哔哩)1、完成智...
普及透视!哈糖大菠萝攻略,来玩... 普及透视!哈糖大菠萝攻略,来玩德州破解器(透视)好像真的有辅助工具(哔哩哔哩)1)哈糖大菠萝攻略免费...
了解透视!xpoker透视辅助... 了解透视!xpoker透视辅助,sohoo辅助(透视)一直存在有辅助神器(哔哩哔哩)1、下载好xpo...