我正在开发一个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对象,似乎没有必要包含至少69 KB的jQuery slim.min.js来提供一个promise功能。
如果有比jQuery和promises更多经验的人可以解释$.Deferred
功能如何工作,以及如何用原生Promise替换它将会很棒。
答案 0 :(得分:4)
这相当于es6中的代码示例:
return new Promise((resolve, reject) => {
// ...
reject(err);
// ...
resolve(data);
});