關於的短文檔失敗說jQuery 3.2.1中的.catch和.fail有什麼區別?
「添加處理程序以在拒絕Deferred對象時調用」。
約短文檔.catch說如出一轍:
「當遞延對象拒絕被稱爲添加處理程序。」
源:http://api.jquery.com/category/deferred-object/
的兩種方法的函數的參數似乎是不同的,並且的 該文檔.catch指出.catch是別名。然後(NULL,FN)
=>是否有我應該使用.fail和其他我應該使用.catch的情況?
或者...如果我只有一個功能...以下命令可以互換,並且它們只存在於兼容性/歷史原因?
a) .fail(fn)
b) .catch(fn)
c) .then(null, fn)
我創建了一個的jsfiddle:
https://jsfiddle.net/sq3mh9j5/
如果是有區別的,你可以請提供一些例子,因爲我是新來的jQuery和尚未熟悉所有的承諾條款。
爲什麼.catch的文檔沒有引用.fail的文檔並澄清差異/相似性?
編輯 我在3.0發行說明中發現了一些註釋,說明.then的行爲已更改。 https://blog.jquery.com/2015/07/13/jquery-3-0-and-jquery-compat-3-0-alpha-versions-released/ 儘管如此,我仍然不確定何時使用.fail以及何時使用.catch。
「*將重新解決的承諾*」 是非常容易引起誤解。重要的一點是,它會返回一個新的,明確的承諾(就像'then')。 – Bergi
啊,明白了。我不知道如何描述它 - 我會更新我的答案。謝謝 –
所以,如果我想'打破/退出'錯誤的正常工作流程......我會使用'失敗'(第一個例子),如果我想實現'always'子句,我使用'catch' (第二個例子)。 – Stefan