Asyncjs并行,循环运行

时间:2014-11-19 08:21:23

标签: node.js

我有一个包含url的数组

var urls = ['http://google.com', 'http://example.com', 'http://localhost:300'];

和从url读取的函数

function readUrl(url) {....}

我不想为数组中的所有可用URL运行该函数。是不是可以使用asyncjs?或任何其他建议。

1 个答案:

答案 0 :(得分:1)

  

asyncjs可以吗?

是的,有可能。,像这样

1

var async = require('async');
var urls  = ['http://google.com', 'http://amazon.com', 'http://bing.com'];

function readUrl(url, next) {
  // some code  
  next(null, result);
}

urls = urls.map(function(url) {
  return function (next) {
    readUrl(url, next);
  };
});

async.parallel(urls, function(err, res) {
  console.log(err, res);
})

2

var async = require('async');
var urls = ['http://google.com', 'http://amazon.com', 'http://bing.com'];

function readUrl(url) {
  return true;
}

urls = urls.map(function(url) {
  return function (next) {
    var res = readUrl(url);

    if (res) {
      return next(null, res);
    }

    next('Error');
  };
});

async.parallel(urls, function(err, res) {
  console.log(err, res);
})