一. promise 对象html
promise是ECMAscript 6 提供的构造函数, new Promise() 建立的对象表明了未来要发生的事件,它有以下特色:json
1)状态一旦发生变化,就不受外界影响; 任什么时候候给Promise 对象添加回调函数,它都保持在这个状态promise
其状态变化有如下两种形式:app
pending(初始状态) --> fulfilled(操做成功)异步
pending --> rejected(操做失败)函数
2)实例化的 promise 对象能够调用 .then() 和 .catch()方法接收 onFUlfilled 和 onRejected 状态的返回值post
阮一峰大神的理解:fetch
*有了Promise对象,就能够将异步操做以同步操做的流程表达出来,避免了层层嵌套的回调函数。此外,Promise对象提供统一的接 口,使得控制异步操做更加容易。
url
二. fetch 发get 和 post 请求,返回的是一个promise对象spa
//1.发送get请求, 参数在url中拼接 var num = 1; fetch("/user/queryUser?page="+num+"&pageSize=5").then(res =>res.json()).then(data =>{ console.log(data); $('#userBox').html(template('userTpl', {data: data})) }).catch(err =>{ console.log(err);
})
//2.发送post 请求, 参数在 body中传递, 并且必须转换为字符串 fetch('url', { method: 'post', //body: JSON.stringify(data), body: JSON.stringify({ name: 'nora', age: 18 }), headers : { 'Content-Type' : 'application/json' } }).then(res => res.json()).then(data =>{ //console.log(data); if(data.success) { location.reload() } }).catch(err =>{ alert(err); })