2013-07-11 43 views
0

有沒有辦法爲jQuery承諾設置默認錯誤函數?jQuery承諾的默認錯誤函數?

我有一個異步執行的函數鏈,如果其中任何一個失敗,我想報告錯誤。這就是我現在要做的:

function myErrorFunc() { 
    // report error 
} 

doSomething.then(doSomething2(), myErrorFunc).then(doSomething3(), myErrorFunc).then(...) 

我寧願設置默認誤差函數的一些地方,然後就打電話

doSomething.then(doSomething2()).then(doSomething3()).then(...); 

可能嗎?

回答

0

後,我接受別人的答案,我發現了一個更好的:

function myWrapperFunction() { 
    return doSomething().fail(myErrorFunction()); 
} 

現在我所要做的就是致電myWrapperFunction().then(),並且錯誤功能已到位。

+0

請注意,即使出現錯誤,這也會執行調用者的回調,您可能不想這麼做。 – SLaks

+0

似乎沒有。 – ccleve

+0

'myErrorFunction()'你剛纔調用處理程序_immediately_。 – SLaks

2

錯誤通過承諾鏈傳播。

你可以簡單地寫

promise.then(a).then(b).then(c).then(null, onError) 
-1

更新與自定義原型默認的錯誤功能

function NewError(message) { 
    this.name = "NewError"; 
this.message = (message || ""); 
} 
NewError.prototype = Error.prototype; 
+0

這完全不是他要求的。 – SLaks