promise的粗糙實現

2021-09-11 14:30:57 字數 643 閱讀 2660

function promise(fn) else

this.task.pointer++; //then佇列指標自增

doer(); //then佇列指標自增

};this.task.push(f);

if(this.pending!=='init')

return this //把當前物件返還回去

};this.catch = fn => ;

this.errtask.push(f);

if(this.pending=='error')

return this //把當前物件返還回去

};const doer = () => else

if(this.task.length>0)

};const doerror=()=>else

if(this.errtask.length>0)

} const res = e => else

};const rej = e => else

};trycatch(e)

}複製**

promise的同步捕獲在then(fn,fb)的fb函式中,非同步捕獲只能手動呼叫reject函式

類似的非同步錯誤處理,參開下圖

粗糙的洗牌演算法實現

今天無意中聊起洗牌演算法,於是就嘗試寫一下這個洗牌演算法,不管演算法多麼簡陋,主要進一步熟悉js語言,鍛鍊一下自己。我的思路,模擬現實中的洗牌常用方法 1 一開始牌的狀態是有序或者無序的。2 每次講牌分開兩半,然後用左右手分別將這兩堆牌交叉,得到乙個新順序的牌。3 將過程2重複n次,即洗好牌。4 上...

Promise的簡單實現

promise 是非同步程式設計的一種解決方案 從語法上講,promise是乙個物件,從它可以獲取非同步操作的訊息 從本意上講,它是承諾,承諾它過一段時間會給你乙個結果。promise有三種狀態 pending 等待態 fulfiled 成功態 rejected 失敗態 狀態一旦改變,就不會再變。創...

自己實現Promise

class mypromise 0 resolve obj reject obj then func,errfunc function fff resolve,reject test var m new mypromise fff var num 1 m.then obj obj console.l...