如何使用不同的参数异步运行很多函数?
Posted
技术标签:
【中文标题】如何使用不同的参数异步运行很多函数?【英文标题】:How to run a lot of functions asynchronously with different parameters? 【发布时间】:2020-03-09 13:36:19 【问题描述】:我有一个像deleteItem(id)
这样的异步函数和一个ids
的数组。
如何为每个 id 同时异步运行相同的函数?
Promise.all
在这种情况下有帮助吗?
deleteItem - 从谷歌云存储中删除文件
【问题讨论】:
这完全取决于deleteItem()
的实际作用。但是,您没有发布。
Promise.all
将有助于在所有并行异步功能完成时获得通知。但是请注意,javascript 是单线程的。只有“离开” JS 环境的 I/O 操作才能真正被并行化。 (当然,你总是可以产生更多的进程)。所以正如Pointy所说,这真的取决于deleteItem
做了什么。
deleteItem() 执行从谷歌云存储中删除文件的承诺
【参考方案1】:
你可以试试这样的:
var ids = ['id1', 'id2', 'id3'];
var myParallelTasks = [];
//push all delete functions in an array
ids.forEach( function( id )
myParallelTasks.push( deleteItem( id, function(callback)
callback();
)
);
//wait for all to finish
async.parallel( myParallelTasks, function()
// all done
console.log( "All files were deleted " );
);
【讨论】:
以上是关于如何使用不同的参数异步运行很多函数?的主要内容,如果未能解决你的问题,请参考以下文章