也算是延续三年前的一个系列,这里实测一下ES6新出的Promise对nodejs的异步编程有多大改观
还是沿用三年前那篇文章的场景,连续访问三个http接口,然后对三个结果做综合处理
话不多说,上代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | var _http = require('./lib/http.js'); //对使用Promise做异步操作的封装,需要返回Promise对象,且成功回调resolve,出错回调reject function testg(url){ return new Promise((resolve, reject)=>{ _http.get(url, {}, (retu)=>{ console.log('Promise, retu, resolve', url); resolve(retu); }, (er)=>{ console.log('Promise, er, reject'); reject(er); }); }); } Promise.all([ testg('https://www.baidu.com'), //一次调用三个异步请求 testg('https://www.qq.com'), testg('https://www.sina.com') ]).then((retu)=>{ //三个异步请求的成功回调结果,封装在retu数组里 console.log('Promise.all, retu', retu[0].length, retu[1].length, retu[2].length); }).catch((er)=>{ console.log('catch, er'); }); |
——–
转载请注明出处:http://www.jiangkl.com/2017/05/nodejs_promise