码迷,mamicode.com
首页 > 其他好文 > 详细

promise 实现

时间:2018-12-21 16:09:38      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:err   else   The   ===   异步执行   this   out   pre   cti   

···js
function Promise(fn) {
let state = "pending";
let val = null // 异步执行的值(结果)
let deffer = [];
this.then = function(onFulfilled) {
if(state === "pending") {
deferreds.push(onFulfilled);
return this;
}
onFulfilled(value);
return this
}
function resolve(newValue) {
value = newValue;
state = "fulfilled";
// deferred(value);
// 保证deferred 有值
setTimeout(() => {
deffer.forEach((deferred) => {
deferred(value);
});
}, 0);
}
fn(resolve);
}

 new Promise((resolve, reject)=> {
    if (true){
      resolve(3);
    } else {
      reject(error);
    }
 }).then((res)=> { console.log(res)})

···

promise 实现

标签:err   else   The   ===   异步执行   this   out   pre   cti   

原文地址:https://www.cnblogs.com/he-zhi/p/10156026.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!