我剛剛開始學習承諾。我發現他們非常有趣,但我有一些疑問,我無法找到答案。深入瞭解jQuery承諾
- 我認爲
$.Deferred().promise
,$.get().promise
和$.fn.promise().promise
只是相同的功能。 我對不對? - 如果我對上一個問題是正確的,爲什麼
$.Deferred().promise===$.get().promise
返回false? $('#mybox').hide(3000).promise()
例如,將創建一個承諾對象,其中將被解析,一旦動畫隊列將爲空。什麼是的情況下,相當於底層程序:I. $.get().promise() : Is it a queue that is being watched? If yes, which one? If no, which is the trigger for the above promise object to be resolved? II. var defer=new $.Deferred().promise() : The same question!
希望大家幫我澄清上述...
你應該避免jQuery的承諾,因爲他們不遵守統一的承諾的提案 –
1.他們都是一個承諾,但不一樣的承諾,所以2不會是==更不用說=== 3.I 。一個promise將被解析,任何'then'(或者類似的)回調將以它們所附加的順序被回調,3.II你不會這樣做,因爲你沒有權限訪問延遲執行/拒絕函數來解決承諾(除非jQuery在返回的承諾中公開履行/拒絕) –
@JaromandaX如果回答問題,您可以擴展您的評論並將其發佈爲答案嗎? – twernt