小编jor*_*dan的帖子

处理大量承诺的最有效方法?

处理大量承诺的最有效方法是什么?我提出了2个解决方案,并确定解决方案2(使用bluebird的解决方案promise.map)更快。

解决方案1(每个文件约38ms)

readFile(file) {
  return new Promise((resolve, reject) => {
    jsmediatags.read(file, {
      onSuccess: resolve,
      onError: reject
    })
  })
}

async readFilesHandler() {
  console.time('readFilesHandler timer')
  const fileArray = Array.from(this._fileSelectInput.files)
  const tracksArray = []

  for (let file = 0; file < fileArray.length; file++) {
    await this._readFile(fileArray[file]).then(tags => {
      tracksArray.push({
        id: file + 1,
        title: tags.tags.title || undefined,
        artist: tags.tags.artist || undefined,
        album: tags.tags.album || undefined,
        year: tags.tags.year || undefined
      })
    })
  }
  this.dispatchEvent(new CustomEvent('tracks-selected', {
    detail: …
Run Code Online (Sandbox Code Playgroud)

javascript arrays loops promise bluebird

5
推荐指数
1
解决办法
48
查看次数

标签 统计

arrays ×1

bluebird ×1

javascript ×1

loops ×1

promise ×1