promise俗稱鏈式調用,它是es6中最重要的特性之一
簡單的說可以不停的then調用嵌套在調用(異步之后,鏈式調用方式執行回調),這種操作方式稱為promise
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
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。
新聞熱點
疑難解答