三个异步函数,如:
function async1(param, callback){
setTimeout(function(){
callback(param+'->async1');
},2000);
}
function async2(param, callback){
setTimeout(function(){
callback(param+'->async2');
},2000);
}
function async3(param, callback){
setTimeout(function(){
callback(param+'->async3');
},2000);
}
一般的调用方式如下:
async1('test', function(result1){
console.log('异步1结果:'+result1);
async2(result1, function(result2){
console.log('异步2结果:'+result2);
async3(result2, function(result3){
console.log('异步3结果:'+result3);
});
});
});
可以想象,当回调层次更多,再混入复杂的业务逻辑时,是多么痛苦。
promise,即承诺对象,是以前常用的方案,promise可以将嵌套转化为链式调用,可谓是极大的进步了。
首先定义一个很关键的转化函数,函数的作用是将普通异步函数转化为promise:
var promiseHe