取代美元.延迟与普通JavaScript承诺



我正在研究一个Chrome扩展,它没有理由使用jQuery,但它确实有理由使用meteor-ddp.js脚本,它只使用jQuery来访问$.Deferred功能。仅使用rejectresolvepromise三种方法:

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);
});

最新更新