fetch-promise

一. 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); }) 
本站公眾號
   歡迎關注本站公眾號,獲取更多信息