Javascript中你看過最簡單的Promise

2021-08-14 13:49:16 字數 1499 閱讀 5480

settimeout(function

()) })

})

**難看,try{}catch(){}難捕獲異常,不能return,是不是很不方便。

這個時候我們的主角promise登場,幫助我們解決一些非同步問題。

promise內部有三種狀態:

- pending(任務剛加入時候的狀態)

- fufilled(成功執行任務)

- reject(執行任務失敗)

最終**實現:

function

promise

(task) else

}function

reject

(value)else

}trycatch(e)

}function

resolvepromise

(x, resolve, reject)else

if(x.statues == "rejected")else, reject)

}}else

if(x != null && (typeof x == "object" || typeof x == "function")), reject)

}}else

}promise.prototype =

rejectcall = typeof rejectcall == "function" ? rejectcall : function

() if(t.statues == "fufilled"))

}else

if(t.statues == "rejected"))

}else

if(t.statues == "pending"));

t.rejectcallbacks.push(function

() );})}

return promise2;

}}// 快捷方法

promise.resolve = function

(value) );

}promise.reject = function

(value) );

}// 所有成功resolve,否則reject

promise.all = function

(promises)

return

new promise(function

(resolve, reject)

}, function

(value) )}}

})}// 競速,誰跑得快先返回誰

promise.race = function

(promises)

return

new promise(function

(resolve, reject) , function

(value) )}}

})}module.exports = promise;

已寫完的二十本最經典原創小說巨作!你都看過嗎?

原創 自從流行以來,網路上面有數萬部原創作品充斥其間。令佷多書友鬱悶的是,優秀作品經常充滿了令人等待的苦惱。所以這次小弟專門蒐集了部分已經完成的經典大作,以滿足更多兄弟們喜歡一口氣看完整本的願望。我是 師 飄渺之旅 夢幻空間 魔法學徒 騎士的戰爭 裸蘭 之縱橫天下 搜神記 泰坦傳奇 昇龍道 壞蛋是怎...

兒時的動畫,你看過那些? 後記

後記 80年代早已過去,但80年代的動畫仍然在我們的心中。或深,或淺,或輕,或重 但是,那是回憶,不單單是對動畫本身的回憶,還是對那個年代的回憶。就像我們的父輩們老是會回憶上山下鄉的歲月,總是喜歡 渴望 年輪 那樣我們看不懂的影片。早就想寫點什麼。可惜,我是個懶漢.直到有一天,我和乙個朋友的朋友辯論...

看過了你就知道怎麼泡妞了

首先咱也玩玩文字遊戲,先說泡這個字其實是一種狀態而不是乙個動詞。就更像泡茶,泡溫泉一樣是一件享受的事情,是一種享受的態度如果你在泡的過程中感到不舒服應該結束做更讓你舒服的事情這是泡妞的基礎,因為你的狀態已經變了所以不要再去做一件你不喜歡的事情 題記 寫到這相信很多朋友也會有疑問,我經濟條件不錯,但是...