sách gpt4 ăn đã đi

javascript - async.map 或 async.each 与 async.parallel 有什么区别?

In lại Tác giả: IT Lão Cao 更新时间:2023-10-28 23:21:29 26 4
mua khóa gpt4 giày nike

我最近开始做一个 Node 项目,并且一直在使用 không đồng bộ 库。我有点困惑哪个选项会更快。在某些数据上使用 async.map 并获取其结果,或使用 async.each 迭代一组用户并将他们的相应操作放入一个函数调用数组中,我使用 async.parallel 执行。

câu trả lời hay nhất

类似于 JavaScript 的 forEach , async.each 接受三个参数,第一个是要迭代的数组,第二个是应用于数组每个元素的函数(即第一个参数)。第二个参数的形式是iterator(item, callback),其中trình lặp lại是函数名,gọi lại也是一个函数,使用 callback(err) 形式,在 trình lặp lại 完成后调用。 (Để ý:“如果没有发生错误,回调应该在没有参数或显式空参数的情况下运行。”)async.each的第三个参数是回调它在所有 trình lặp lại 函数执行后被调用,就像每个迭代器的回调都有 callback(err) 的形式。

Nguồn


为简洁起见,以下是 async.map 的参数形式:

  • arr - 要迭代的数组。
  • iterator(item, callback) - 应用于 arr 中每个项目的函数。迭代器被传递一个 callback(err,transformed) 必须被调用一次它已完成,但出现错误(可以是 vô giá trị)和转换后的项目。
  • callback(err, results) - 当所有 trình lặp lại 时调用的回调功能已完成,或发生错误。结果是一个数组arr 中的转换项目。

Nguồn


得到问题答案的核心,async.map maps 通过调用 将其第一个参数传递给数组iterator 在数组的每个元素上,这是它的第一个参数,但 async.map 必须返回一个数组,而 async.each 则不然。这体现在async.map的第三个参数中的第二个(我指的是results),它必须是一个数组。也就是说,在最简单的例子中,

async.map([1, 2, 3], function iterator(item, callback_it){ return 2*item; }, callback(err, results))

假设你已经实现了 callback_itgọi lại,那么在上面的例子中 [2, 4, 6] 将作为 callback 的第二个参数传递

关于javascript - async.map 或 async.each 与 async.parallel 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30227494/

26 4 0
Cựu chiến binh CNTT
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress