我該如何處理藍鳥協程中的錯誤?bluebirdjs協同程序錯誤處理(瀏覽器)
我在節點中使用了一段時間,它有一個很棒的捕捉功能。
co(function*() {
return new Promise(function(resolve, reject) {
// whatever stuff
});
}).catch(function(err) {console.error(error.stack)});
但與瀏覽器/客戶端的藍鳥這是一個完全的噩夢。沒有捕捉功能和我回來的錯誤 - 如果有的話 - 是匿名或未處理,這是總腦力...
我檢查了bluebirdjs的網站,並且有關於如何進行的討論在幾個月前處理錯誤。即使有人寫道:
應該有一個更好的例子,強調使用try,catch和最終在協程中的好處。
http://bluebirdjs.com/docs/api/promise.coroutine.html
我的意思是:呵,catch終於嵌套在協程?我承認,我甚至一直遵循這個建議來做幾個例行公事,但我似乎並不正確。 Promises和協程的全部要點是擺脫醜陋的過度嵌套,這些回調創造了什麼?再來一次?
請,如果有人有一個想法如何bluebirdjs錯誤mayhem可以變成更好的解決方案,我真的很感激它。
'Promise.coroutine' =='co.wrap'。兩個返回函數都返回帶有catch方法的promise。 – Bergi
@Bergi愚蠢的我,你是對的。我想這樣的 * Promise.coroutine(/ *發電機東西* /)。捕捉(處理)invokation之前設置捕捉*的 代替 * Promise.coroutine(/ *發電機東西* /)。() .catch(處理程序)* – LongHike