首页 > 怎么将es6的Promise和Ajax封装起来使用?

怎么将es6的Promise和Ajax封装起来使用?

这个封装好了应该用起来挺方便的,有没有最简单的方法,代码量少又实用的?


嘛已经有人提了,我简单补充一下

fetch是新的用来替代古老的XMLHttpRequest的接口协议,目前已经被所有safari之外的所有现代浏览器支持

https://developer.mozilla.org...

它的返回就是原生Promise,本身是原生API不需要库,完全符合题主的需求

对于不兼容的部分浏览器,很容易找到对应的polyfill,比如这个,当然,没有Promise支持的浏览器还得继续打上Promise的polyfill


用fetch.js


我已经封装好

https://github.com/RubyLouvre...

fetch polyfill which supports all mainstream browsers, even IE6, IE7, IE8.....

$ npm install fetch-polyfill2 --save
$ npm install bluebird -- save
$ npm install json3 -- save


简单点就是ajax返回一个promise,如下:

function ajax(url) {
  return new Promise(function(resolve, reject){
    var xml = new XMLHttpRequest();
    xml.open('get',url,true);
    xml.onload = resolve;
    xml.onerror = reject;
    xml.send();
  } )
}

就可以请求了

ajax(url).then(function(response)).catch(function(err))

Fetch API就是为此而生。

【热门文章】
【热门文章】