Til*_*Til 6 javascript api asynchronous node.js
在我的示例中,是否有更好/更漂亮的方法来依次调用多个API(依次)?
var request = require('request');
request('http://www.test.com/api1', function (error, response, body) {
if (!error && response.statusCode == 200) {
request('http://www.test.com/api1', function (error, response, body) {
if (!error && response.statusCode == 200) {
request('http://www.test.com/api1', function (error, response, body) {
if (!error && response.statusCode == 200) {
//And so on...
}
})
}
})
}
})
Run Code Online (Sandbox Code Playgroud)
根据您使用的节点版本,Promise 应该是原生的......
https://nodejs.org/en/blog/release/v4.0.0/
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise
var request = require('request');
getRequest('http://www.test.com/api1').then(function (body1) {
// do something with body1
return getRequest('http://www.test.com/api2');
}).then(function (body2) {
// do something with body2
return getRequest('http://www.test.com/api3');
}).then(function (body3) {
// do something with body3
//And so on...
});
function getRequest(url) {
return new Promise(function (success, failure) {
request(url, function (error, response, body) {
if (!error && response.statusCode == 200) {
success(body);
} else {
failure(error);
}
});
});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8228 次 |
| 最近记录: |