Dom*_*see 29 javascript jquery
这是将jQuery转换Deferred为的正确方法Promise吗?
var p = Promise.resolve($.getJSON('api/values', null));
Run Code Online (Sandbox Code Playgroud)
有没有其他方法可以做到这一点?
有什么限制?我已经读过某个地方,jQuery延迟不支持异常,所以我假设从延迟创建的承诺都不会.它是否正确?
我不确定这是否有效.我建议:
var p = new Promise(function (resolve, reject) {
$.getJSON('api/values', null)
.then(resolve, reject);
});
Run Code Online (Sandbox Code Playgroud)
最好你可以创建一个适应器功能,如:
var toPromise = function ($promise) {
return new Promise(function (resolve, reject) {
$promise.then(resolve, reject);
});
});
var p = toPromise($.getJSON('api/values', null));
Run Code Online (Sandbox Code Playgroud)
是的,Promise.resolve()API支持thenable作为参数.所以传递一个jquery延迟对象就可以了.