我正在研究一个Chrome扩展,它没有理由使用jQuery,但它确实有理由使用meteor-ddp.js脚本,它只使用jQuery来访问$.Deferred
功能。仅使用reject
、resolve
和promise
三种方法:
var conn = new $.Deferred();
//...
conn.reject(err);
//...
conn.resolve(data);
//...
return conn.promise();
现在JavaScript有了自己的原生Promise对象,似乎没有必要仅仅为了提供Promise特性而包含至少69 KB的jQuery slim.min.js。
如果有比我更熟悉jQuery和promises的人能解释一下$.Deferred
功能是如何工作的,以及如何用原生promises代替它,那就太好了。
这相当于你在es6中的代码示例:
return new Promise((resolve, reject) => {
// ...
reject(err);
// ...
resolve(data);
});