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...