function MyPromise(func) {
var self =this;
var count =0;
this.cbklist = [];
this.then =function(callback) {
this.cbklist.push(callback);
return this;
}
this.success =function() {
if (count == self.cbklist.length)return;
self.cbklist[count++](self.success);
}
setTimeout(function() {
func(self.success);
}, 0);
}
function ajaxA(success){
setTimeout(function(){
console.log("AAAAAAAAAA");
success();
}, 3000);
}
function ajaxB(success){
setTimeout(function(){
console.log("BBBBBBBBBB");
success();
}, 2000);
}
function ajaxC(success){
setTimeout(function(){
console.log("CCCCCCCCCC");
success();
}, 1000);
}
function ajaxD(){
setTimeout(function(){
console.log("DDDDDDDDD");
}, 2000);
}
new MyPromise(ajaxA).then(ajaxB).then(ajaxC).then(ajaxD);
来源https://www.cnblogs.com/liuliang-wifi/p/6832850.html