Is this the correct way to convert jQuery Deferred to a Promise?
var p = Promise.resolve($.getJSON(\'api/values\', null));
Are there any ot
I would prefer composition:
const successCb1 = ()=>$.getJSON('api/values'),
successCb2 = (json)=>alert(json),
errorCb = (e)=>alert(e);
Promise
.resolve()
.then(successCb1)
.then(successCb2)
.catch(errorCb);
I am not sure if that would work. I would recommend:
var p = new Promise(function (resolve, reject) {
$.getJSON('api/values', null)
.then(resolve, reject);
});
preferably you could create an adaptorfunction like:
var toPromise = function ($promise) {
return new Promise(function (resolve, reject) {
$promise.then(resolve, reject);
});
});
var p = toPromise($.getJSON('api/values', null));
Yes it should, the Promise.resolve() API supports thenable as argument. So passing a jquery defer object would work just fine.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/resolve#Resolving_thenables_and_throwing_Errors