学堂 学堂 学堂公众号手机端

JS中用循环迭代数组并在循环内等待的实现是怎样

lewis 1年前 (2024-04-19) 阅读数 15 #技术

这篇文章我们来了解“JS中用循环迭代数组并在循环内等待的实现是怎样”的内容,小编通过实际的案例向大家展示了操作过程,简单易懂,有需要的朋友可以参考了解看看,那么接下来就跟随小编的思路来往下学习吧,希望对大家学习或工作能有帮助。



下面是如何使用for..of 循环来迭代一个数组并在循环内等待:

const fun = (prop) => {
  return new Promise(resolve => {
    setTimeout(() =>
      resolve(`done ${prop}`), 1000);
  })
}

const go = async () => {
  const list = [1, 2, 3]

  for (const prop of list) {
    console.log(prop)
    console.log(await fun(prop))
  }

  console.log('done all')
}

go()

你需要把循环放在一个异步函数中,然后你可以使用await ,循环会停止迭代,直到我们正在等待的承诺得到解决。

你可以用for...in循环做同样的事情,对一个对象进行迭代:

const fun = (prop) => {
  return new Promise(resolve => {
    setTimeout(() =>
      resolve(`done ${prop}`), 1000);
  })
}
const go = async () => {
  const obj = { a: 1, b: 2, c: 3 };

  for (const prop in obj) {
    console.log(prop)
    console.log(await fun(prop))
  }

  console.log('done all')
}

go()

你也可以使用whiledo..whilefor 循环,也是这种结构。

但是你不能用Array.forEach()Array.map() 来等待。


到此这篇关于“JS中用循环迭代数组并在循环内等待的实现是怎样”的文章就介绍到这了,更多相关JS中用循环迭代数组并在循环内等待的实现是怎样内容,欢迎关注博信技术资讯频道,小编将为大家输出更多高质量的实用文章!
版权声明

本文仅代表作者观点,不代表博信信息网立场。

热门