jQuery Ajax方法自身返回promise,您根本 不需要 包装它们。
但是,您当然可以这样做,以便与ES6 Promise API保持一致。
UPDATE jQuery 3.0+实现了Promise / A +
API,因此不再需要在现代jQuery中包装任何东西。
对于3.0之前的jQuery版本,我将比您解耦的更多:
function ajax(options) { return new Promise(function (resolve, reject) { $.ajax(options).done(resolve).fail(reject); });}和
ajax({ url: someURL, type: 'post', contentType: 'application/json; charset=utf-8', data: JSON.stringify({ something: something, anotherthing: anotherthing })}).then( function fulfillHandler(data) { // ... }, function rejectHandler(jqXHR, textStatus, errorThrown) { // ... }).catch(function errorHandler(error) { // ...});


