ES6 Promise對象then方法鏈式調用
阿新 • • 發佈:2018-03-12
res post AR 返回 ise AI down ole -m
then()方法的作用是Promise實例添加解決(fulfillment)和拒絕(rejection)狀態的回調函數。then()方法會返回一個新的Promise實例,所以then()方法後面可以繼續跟另一個then()方法進行鏈式調用。
let p = new Promise((resolve, reject) => { setTimeout(resolve, 1000, 'success'); }); p.then( res => { console.log(res); return `${res} again`; } ) .then( res => console.log(res) ); // 連續 // success // success again
但是前一個then()方法中的回調函數中又可能返回一個Promise實例,這時候後面一個then()方法中的回調函數會等前一個Promise實例的狀態發生變化才會調用。
let p = new Promise((resolve, reject) => { setTimeout(resolve, 1000, 'success'); }); p.then( res => { console.log(res); return new Promise((resolve, reject) => { setTimeout(resolve, 1000, 'success'); }); } ) .then( res => console.log(res) ); // 相隔1000ms // success // success
ES6 Promise對象then方法鏈式調用