Comment convertir un objet différé jQuery en promesse ES6
Est-ce la bonne façon de convertir jQuery DeferredPromise<!--5?
var p = Promise.resolve($.getJSON('api/values', null));
existe-il d'autres façons de le faire?
Quelles sont les limites? J'ai lu quelque part que jQuery différé ne supporte pas les exceptions, donc je suppose qu'une promesse créée à partir d'un différé ne le ferait pas non plus. Est-ce correct?
25
                
            
                demandé sur
                Chris Martin
                2015-08-24 10:57:54
            
        3 réponses
Oui il faut, la Promesse.l'API resolve () supporte thenable comme argument. Donc passer un objet jQuery defer marcherait très bien.
7
	                    
	                
	                    répondu
	                    nox
	                    2017-04-14 02:42:41
	                
	            je ne suis pas sûr que ça marcherait. Je recommande:
var p = new Promise(function (resolve, reject) {
  $.getJSON('api/values', null)
    .then(resolve, reject);
});
de préférence, Vous pouvez créer une fonction d'adaptateur comme:
var toPromise = function ($promise) {
  return new Promise(function (resolve, reject) {
    $promise.then(resolve, reject);
  });
});
var p = toPromise($.getJSON('api/values', null));
    	                8
	                    
	                
	                    répondu
	                    Andreas Møller
	                    2016-02-18 04:55:42
	                
	            je préfère composition:
const successCb1 = ()=>$.getJSON('api/values'),
successCb2 = (json)=>alert(json),
errorCb = (e)=>alert(e);
Promise
   .resolve()
   .then(successCb1)
   .then(successCb2)
   .catch(errorCb);
    	                2
	                    
	                
	                    répondu
	                    Shishir Arora
	                    2016-03-31 07:20:25