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

相关内容

热门资讯

解迷透视!wepoker科技辅... 解迷透视!wepoker科技辅助器,微乐麻辣自建房辅助视频,妙招教程(详细教程)-哔哩哔哩1、这是跨...
关于透视!wepoker作弊方... 关于透视!wepoker作弊方法,微乐房间辅助工具在哪下载,绝活教程(揭秘有挂)-哔哩哔哩所有人都在...
教你透视!拱趴大菠萝有挂吗,微... 教你透视!拱趴大菠萝有挂吗,微信小程序有挂吗辅助,手筋教程(有挂详情)-哔哩哔哩1、拱趴大菠萝有挂吗...
教你透视!wepoker到底有... 教你透视!wepoker到底有没有透视,微乐自建房脚本下载,机巧教程(有挂解惑)-哔哩哔哩1、进入游...
解谜透视!hhpoker有透视... 解谜透视!hhpoker有透视功能吗,微乐广西小程序开发,资料教程(有挂详细)-哔哩哔哩1、hhpo...
总结透视!wepoker网页版... 总结透视!wepoker网页版透视方法,微信小程序微乐破解器,阶段教程(有挂神器)-哔哩哔哩1、we...
总结透视!来玩德州破解器,微乐... 总结透视!来玩德州破解器,微乐自建房辅助入口官网,攻略教程(有挂助手)-哔哩哔哩1、超多福利:超高返...
了解透视!we poker辅助... 了解透视!we poker辅助器v3.3,微乐小程序多乐辅助器,课程教程(有挂分享)-哔哩哔哩1、在...
详情透视!wepoker插件程... 详情透视!wepoker插件程序激活码,微信小程序微乐房间的挂多少钱,指南教程(有挂猫腻)-哔哩哔哩...
开挂透视!hhpoker是正品... 开挂透视!hhpoker是正品吗,微乐河南家乡麻将辅助脚本,技法教程(有挂攻略)-哔哩哔哩1、玩家可...