promise俗稱鏈式調(diào)用,它是es6中最重要的特性之一
簡單的說可以不停的then調(diào)用嵌套在調(diào)用(異步之后,鏈式調(diào)用方式執(zhí)行回調(diào)),這種操作方式稱為promise
then()方法的作用是Promise實例添加解決(fulfillment)和拒絕(rejection)狀態(tài)的回調(diào)函數(shù)。then()方法會返回一個新的Promise實例,所以then()方法后面可以繼續(xù)跟另一個then()方法進行鏈式調(diào)用。
let p = new Promise((resolve, reject) => { setTimeout(resolve, 1000, 'success');});p.then( res => { console.log(res); return `${res} again`; }) .then( res => console.log(res) );// 連續(xù)// success// success again但是前一個then()方法中的回調(diào)函數(shù)中又可能返回一個Promise實例,這時候后面一個then()方法中的回調(diào)函數(shù)會等前一個Promise實例的狀態(tài)發(fā)生變化才會調(diào)用。
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以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持武林網(wǎng)。
新聞熱點
疑難解答