2016-09-18 67 views
1

我正在研究一個Chrome擴展,它沒有理由使用jQuery,但它有理由使用meteor-ddp.js腳本,該腳本僅使用jQuery來訪問$.Deferred功能。它僅使用三種方法:rejectresolvepromise

var conn = new $.Deferred(); 
//... 
conn.reject(err); 
//... 
conn.resolve(data); 
//... 
return conn.promise(); 

現在,JavaScript也有它自己的本地無極對象,似乎沒有必要,包括至少69的jQuery KB slim.min.js只是提供一個承諾特徵。

如果有比我更多經驗的人有jQuery和承諾可以解釋$.Deferred功能是如何工作的,以及如何用原生Promise替換它,那將會很棒。

+1

請注意,您將需要爲某些瀏覽器http://caniuse.com/#feat=promises我添加了一個後備庫 – charlietfl

+1

請注意,此項目僅適用於Chrome瀏覽器 –

+0

哪部分你不明白?就目前來看,這個問題太廣泛了,你要求某人實施延期使用Promise而不嘗試。試一試,然後提出一個更有針對性的問題。 https://api.jquery.com/jquery.deferred/ –

回答

4

這將是您的代碼示例中ES6相當於:

return new Promise((resolve, reject) => { 
    // ... 
    reject(err); 
    // ... 
    resolve(data); 
});