/**
new Promise(fn1).then(function(val){
console.log(val);
})
主要是把 then 的函数抽取出来 , 利用闭包存放在 callback中, 再把callback 封装成resole;
resolve执行的时候, 可以传参数给callback执行;
new Promise(fn1), 执行fn1, 异步完成调用resolve, 虽然在new 的时候, callback是空,
但是.then(funtion(val){}) 的时候, callback就有方法了, 等异步完成, callback已经有值
**/
function Promise(fn){
//需要一个成功时的回调
var callback;
//一个实例的方法,用来注册异步事件
this.then = function(done){
callback = done;
}
function resolve( dend ){
callback(dend);
}
fn(resolve);
}
function fn1(resolve, reject) {
setTimeout(function() {
console.log(‘步骤一:执行‘);
resolve(‘1‘);
},500);
}
new Promise(fn1).then(function(val){
console.log(val);
})
http://www.cnblogs.com/huansky/p/6064402.html
原文:http://www.cnblogs.com/dhsz/p/6693389.html