for await of

news/2024/7/6 0:58:01

for of方法能够遍历具有Symbol.iterator接口的同步迭代器数据,但是不能遍历异步迭代器。ES9新增的for await of可以用来遍历具有Symbol.asyncIterator方法的数据结构,也就是异步迭代器,且会等待前一个成员的状态改变后才会遍历到下一个成员,相当于async函数内部的await

// for of遍历
function Gen (time) {
  return new Promise(function (resolve, reject) {
    setTimeout(function () {
      resolve(time)
    }, time)
  })
}
async function test () {
  let arr = [Gen(2000), Gen(100), Gen(3000)]
  for (let item of arr) {
    console.log(Date.now(), item.then(console.log))
  }
}
test()

更改后的

function Gen (time) {
  return new Promise(function (resolve, reject) {
    setTimeout(function () {
      resolve(time)
    }, time)
  })
}
async function test () {
  let arr = [Gen(2000), Gen(100), Gen(3000)]
  for await (let item of arr) {
    console.log(Date.now(), item)
  }
}
test()
1575875128523 2000
1575875128532 100
1575875129523 3000

 


http://www.niftyadmin.cn/n/3655738.html

相关文章

嵌入式EasyHMI V0.1版终于推出,C#真是软件开发的利器

这段时间就和闭关一样,连续几周一直在开发嵌入式EasyHMI,从架构到具体的代码,有上位机的IDE开发环境到WinCE上的运行时环境,有TCP/IP、COM通信,有多线程,多缓存图形处理,XML序列化,有…

MOXA的智能通信产品也大力支持WinCE.net了

10月26日参加了moxa公司举办的一个产品交流会, moxa的产品线又得到了进一步的拓宽,其中我对新出的UC系列的智能通信服务器比较感兴趣。以前moxa的智能产品的操作系统一般是uclinux/Linux,目前大部分智能产品都开始支持WinCE.net(5.0)了&#…

在ES9新增的Object的RestSpread方法有何用武之地

把两个对象合到一起 const input { a:1, b:2 } const output { ...input, // Spread 用拷贝的方法 拷贝到output c:3 } input.a 4; // 这里只改了 input 并没有改 output console.log(input) // a:4 b:2 console.log(output) // a:1 b:2 c:3 把一个对象拆…

node.js 写博客系统1

1. npm init -y 初始化环境 2. npm install lodash --save 常用的工具类 3. http 请求概述 DNS解析,建立tcp链接,发送http请求 server接收到HTTP请求,处理,并返回 客户端接收到返回数据,处理数据(如渲…

关于VS2005与EVC4.2的项目开发过程中的问题点滴

这段时间一直致力于嵌入式IOServer与嵌入式HMI的开发,这中间及牵扯C#与EVC通信的问题,也牵扯EVC本身开发遇到的一些问题。1、EVC与C#数据传递我是用EVC做DLL(MFC 扩展DLL),C#直接调用…

嵌入式IOEServer终于开发完成,相应的问题作一个系统阐述(WINCE)

经过近一个月的努力,嵌入式IOEServer终于开发完成,目前仅做了四个驱动,西门子 PPI,CP243; modbus Rtu/AscII,,TCP;效果比预想的要好,下面就是运行在WinCE上的一个截图。下面简单介绍…

.net精简框架集多个类同时串行化(XML方式)技术

存取类实例的参数最佳的方法当然是串行化技术,串行化支持两种方式:二进制方式,可以高保真的保存类示例,另一种是XML方式,它仅保存公共数据。很可惜.net 2.0的精简框架集仅支持XML方式。我这里做了一个示例,…

将一个数组旋转K步

题: 输入一个数组 [1,2,3,4,5,6,7] K3, 即旋转3步 输出 [5,6,7,1,2,3] 思路:1 把末尾的元素挨个pop , 然后unshift到数组前面 思路:2 把数组拆分,最后concat拼接到一起 /*** 把末尾的元素挨个pop , 然后unshift到数组前面* param arr* param k*/ export function kn1(arr:num…