用普通的JavaScript Promise替换$ .Deferred

时间:2016-09-18 00:49:44

标签: jquery promise ecmascript-6

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

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

现在JavaScript有自己的本机Promise对象,似乎没有必要包含至少69 KB的jQuery slim.min.js来提供一个promise功能。

如果有比jQuery和promises更多经验的人可以解释$.Deferred功能如何工作,以及如何用原生Promise替换它将会很棒。

1 个答案:

答案 0 :(得分:4)

这相当于es6中的代码示例:

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