由网友(不悲不喜)分享简介:如果我需要按顺序调用 3 个 http API,下面的代码有什么更好的替代方法:If I need to call 3 http API in sequential order, what would be a better alternative to the following code:http.get({...
如果我需要按顺序调用 3 个 http API,下面的代码有什么更好的替代方法:
If I need to call 3 http API in sequential order, what would be a better alternative to the following code:
http.get({ host: 'www.example.com', path: '/api_1.php' }, function(res) {
res.on('data', function(d) {
http.get({ host: 'www.example.com', path: '/api_2.php' }, function(res) {
res.on('data', function(d) {
http.get({ host: 'www.example.com', path: '/api_3.php' }, function(res) {
res.on('data', function(d) {
});
});
}
});
});
}
});
});
}
推荐答案
使用延迟,如 Futures
.
Using deferreds like Futures
.
var sequence = Futures.sequence();
sequence
.then(function(next) {
http.get({}, next);
})
.then(function(next, res) {
res.on("data", next);
})
.then(function(next, d) {
http.get({}, next);
})
.then(function(next, res) {
...
})
如果你需要传递作用域,那么就做这样的事情
If you need to pass scope along then just do something like this
.then(function(next, d) {
http.get({}, function(res) {
next(res, d);
});
})
.then(function(next, res, d) { })
...
})
相关推荐
最新文章