gpt4 book ai didi

javascript - async.each 与 async.every 之间的区别?

转载 作者:搜寻专家 更新时间:2023-11-01 00:29:08 32 4
gpt4 key购买 nike

async.js 中 async.each 与 async.every 的区别?似乎两者都相同,只是 async.every 返回结果。纠正我,我错了。

最佳答案

每个异步

.each(coll, iteratee, callback)

它更像是数组 each 方法。在每个 Iterable ( coll ) 元素上,函数 iteratee 将被执行。这将并行进行。所以以网站为例

async.each(openFiles, saveFile, function(err){
// if any of the saves produced an error, err would equal that error
});

这里假设 openFiles 是文件路径数组。因此 saveFile 将在每个文件上调用。该过程将并行进行。所以执行的顺序是不能保证的。这里将通过 saveFileopenFiles 数组进行一些操作。如果任何元素导致 saveFile 中的错误,该函数将调用错误的邮件回调并停止该过程。

异步每个

.every(coll, iteratee, callback)

这似乎是相同的方法。因为它还在 coll 元素上执行 iteratee 方法。但这里的关键是,它将返回 truefalse。它更像是一个过滤器,但唯一的区别是如果 coll 中的任何元素在 iteratee 方法中失败,它会返回 false。不要将此处与错误混淆。如果在执行过程中发生一些不确定的行为,就会导致错误。所以方法中的callback会返回callback(err, result)。结果是真还是假取决于 coll 是否通过了迭代测试。

例如检查数组是否有偶数;

async.every([4,2,8,16,19,20,44], function(number, callback) {
if(number%2 == 0){
callback(null, true);
}else{
callback(null, false);
}
}, function(err, result) {
// if result is true when all numbers are even else false
});

所以它更像是在可迭代实体中测试一组值。如果他们通过了给定的测试。另一个示例可能是检查给定数字是否为质数。

关于javascript - async.each 与 async.every 之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44779043/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com