async*阻塞函数体的执行
创始人
2024-09-21 00:01:05
0

可以使用异步迭代器来解决这个问题。异步迭代器是一种特殊类型的迭代器,可以在遍历元素时异步地产生值。与同步迭代器不同,异步迭代器可以在产生值时暂停执行,等待某些异步任务完成后再继续执行。

下面的代码演示了如何使用异步迭代器来避免阻塞函数体的执行:

async function* loadItems() {
  // 异步迭代器
  const items = await api.getItems(); // api是一个异步函数,会返回一个Promise

  for (const item of items) {
    yield await api.getItemDetails(item); // 等待Promise完成
  }
}

async function displayItems() {
  for await (const item of loadItems()) { // 使用异步迭代器
    console.log(item);
  }
}

displayItems(); // 启动异步任务

在这个示例中,loadItems 函数返回一个异步迭代器,它从 api.getItems() 函数中获取一些项目,并返回一个异步'generator”对象,该对象将这些项目的详细信息异步地产生出来。注意,此时函数体并没有被阻塞。

displayItems 函数使用'for await”循环来遍历异步迭代器所产生的值,这样每当一个项目详细信息产生出来时,就会打印到控制台中。由于使用了异步迭代器,这个循环也不会阻塞函数体的执行。

最后,在外部函数中调用 displayItems 函数来启动异步任务。

相关内容

热门资讯

透视有挂!wepoker私人局... 透视有挂!wepoker私人局辅助器怎么用(透视)hhpkoer辅助器视频,教程指南书(有挂秘笈)-...
透视推荐!aapoker透视怎... 透视推荐!aapoker透视怎么用(透视)智星德州插件2024最新版,教程法子(真的有挂)-哔哩哔哩...
透视普及!hhpoker透视码... 透视普及!hhpoker透视码(透视)aapoker公共底牌,教程模板(有挂规律)-哔哩哔哩1、上手...
透视揭露!hhpoker有没有... 透视揭露!hhpoker有没有开挂(透视)pokemmo辅助器手机版下载,教程步骤(有挂秘诀)-哔哩...
透视了解!hhpkoer辅助挂... 透视了解!hhpkoer辅助挂是真的吗(透视)哈糖大菠萝攻略,教程学习(证实有挂)-哔哩哔哩1、金币...
透视解迷!约局吧怎么看有没有挂... 透视解迷!约局吧怎么看有没有挂(透视)wepoker有没有机器人,教程窍门(确实有挂)-哔哩哔哩亲,...
透视推荐!wepokerplu... 透视推荐!wepokerplus透视脚本免费(透视)菠萝德州透视脚本,教程教材(存在有挂)-哔哩哔哩...
透视辅助!wepoker辅助器... 透视辅助!wepoker辅助器安装包(透视)wepoker插件程序激活码,教程阶段(有挂分析)-哔哩...
透视总结!wepoker安装教... 透视总结!wepoker安装教程(透视)约局吧开挂神器是真的吗,教程方式(有挂猫腻)-哔哩哔哩所有人...
透视详细!wepoker辅助器... 透视详细!wepoker辅助器安装包(透视)wepoker辅助器安装包,教程手筋(竟然有挂)-哔哩哔...