如何在节点js中使用async.applyEachSeries?

时间:2015-03-03 01:20:45

标签: node.js asynchronous

非常感谢有人能提供一个更具体的例子来说明如何使用async.applyEachSeries函数。

async.applyEach([enableSearch, updateSchema], 'bucket', callback);

// partial application example:
async.each(
    buckets,
    async.applyEach([enableSearch, updateSchema]),
    callback
);

这是来自异步自述文档,但我不知道如何使用它。什么是'桶',它只是传递到某个地方的字符串吗?

2 个答案:

答案 0 :(得分:6)

async.applyEach([enableSearch, updateSchema], 'bucket', callback);

这会与回调异步调用enableSearch('bucket')updateSearch('bucket'),然后在完成后调用callback()


// partial application example:
async.each(
    buckets,
    async.applyEach([enableSearch, updateSchema]),
    callback
);

async.applyEach()调用返回一个函数,该函数在调用时使用其参数调用enableSearch()updateSchema()。由于async.each()的第一个参数应该是一个数组,我假设buckets是一个字符串数组(因为第一个例子涉及将一个字符串传递给enableSearch()updateSearch()) 。因此,这可以使用数组enableSearch()中的每个字符串调用updateSearch()buckets(然后调用callback())。

答案 1 :(得分:1)

这是async.applyEachSeries的一个非常明显的例子:

$partner = new Tx_Extbase_Persistence_ObjectStorage();
if (count($partnerarr) > 0){
foreach($partnerarr as $p){
$partner->attach( $this->partnerRepository->findByUid($p));
}
}
$organisation = $this->organisationRepository->findByUid($uid)
$organisation->setPartner($partner);

示例:

applyEachSeries(tasks, args..., [callback])

来源:https://stackoverflow.com/a/35309495