在做原子API的组合,组合之后需要验证组合API的有效性。验证思路:首先获取组合API的所有组成原子API,一次访问所有的API,若所有的原子API都可以访问,便访问组合API,最后返回原子API和组合API的测试结果。否则返回原子API的测试失败的结果。
刚开始想使用request模块,但是request访问的结果在回调函数中,如果组合API包含的原子API过多的话,会出现回调灾难。刚好在request的GitHub上发现了request-promise模块,可以使用promise,async和await。这样试下思路就非常明了了。
代码实现
var rp = require('request-promise');
async function request(url){
return new Promise(function(resolve){
rp(url)
.then(function(){
resolve(true);
})
.catch(function(){
resolve(false);
});
});
}
var data = ["/bookTo", "/bookBack", "/refundTo", "/getService"];
var host = "http://www.linyimin.club:10010";
async function test(){
for(let i = 0; i < data.length; i++){
let result = await request(host + data[i]);
console.log(data[i] + ":" + result);
}
}
test ();
程序执行结果:
注意以下程序和上述程序的区别:
var rp = require('request-promise');
async function request(url){
return new Promise(function(resolve){
rp(url)
.then(function(){
resolve(true);
})
.catch(function(){
resolve(false);
});
});
}
var data = ["/bookTo", "/bookBack", "/refundTo", "/getService"];
var host = "http://www.linyimin.club:10010";
for(let i = 0; i < data.length; i++) {
(async function test() {
let result = await request(host + data[i]);
console.log(data[i] + ":" + result);
})();
}
使用node编程,对于异步的操作务必要小心。