最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

什么是在数组(或objs)上迭代异步的最聪明最干净的方法?

运维笔记admin17浏览0评论

什么是在数组(或objs)上迭代异步的最聪明/最干净的方法?

什么是在数组(或objs)上迭代异步的最聪明/最干净的方法?

多数民众赞成我怎么做:

function processArray(array, index, callback) {
    processItem(array[index], function(){
        if(++index === array.length) {
            callback();
            return;
        }
        processArray(array, index, callback);
    });
};

function processItem(item, callback) {
    // do some ajax (browser) or request (node) stuff here

    // when done
    callback();
}

var arr = ["url1", "url2", "url3"];

processArray(arr, 0, function(){
    console.log("done");
});

这有什么好处吗?如何避免那些意大利面条的代码?

回答如下:

检查async库,它是为控制流(异步的东西)而制作的,它有很多方法用于数组的东西:每个,过滤器,地图。查看github上的文档。这是你可能需要的:

每个(arr,迭代器,回调)

将迭代器函数并行应用于数组中的每个项目。使用列表中的项目调用迭代器,并在完成时调用它。如果迭代器将错误传递给此回调,则会立即调用each函数的主回调并显示错误。

eachSeries(arr,iterator,callback)

each相同,只有迭代器应用于数组中的每个项目。只有当前的迭代器完成处理后才会调用下一个迭代器。这意味着迭代器函数将按顺序完成。

发布评论

评论列表(0)

  1. 暂无评论