如果我对async.map
进行了一系列调用,结果是否保证有序?或者结果只是请求完成的顺序? e.g。
var requestList = [
{ method: 'GET', url: '/something1' },
{ method: 'GET', url: '/something2' },
{ method: 'GET', url: '/something3' }];
// async map the requests together, and handle the result in
// the callback.
async.map(requestList, function(obj, callback) {
request(obj, function(error, response, body) {
if(!error && response.statusCode == 200) {
var body = JSON.parse(body);
callback(null, body);
} else {
callback(error || response.statusCode);
}
});
}, function(err, result) {
if(err) {
console.log('Error!');
} else {
// is result guarenteed to be in the order: [/something1, /something2, /something3] ?
}
});
答案 0 :(得分:0)
如果它传递了一个数组,我认为它总是有序的。 并根据官方文件 '如果map传递了一个Object,结果将是一个Array。结果将大致按原始对象键的顺序排列(但这可能因JavaScript引擎而异)。 doc没有谈论数组,因此可以安全地假设订单将被保留。