在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ 返回Promise和resolve或reject后的Promise有什么區(qū)別?

返回Promise和resolve或reject后的Promise有什么區(qū)別?

先說說我對Promise的理解:
1、Promise主要是對回調(diào)嵌套的一種優(yōu)化方案,早期使用$.ajax()的時(shí)候需要傳遞一個(gè)回調(diào)函數(shù),如果業(yè)務(wù)導(dǎo)致層級嵌套太多,會(huì)非常難看,現(xiàn)在的Promise在后面直接.then()或者.catch()則要優(yōu)雅許多。
2、Promise里面的resolve或者reject的調(diào)用,會(huì)將當(dāng)前這個(gè)Promise置于一種狀態(tài)(暫時(shí)忘記了,但是個(gè)人覺得不影響),不管調(diào)用什么,都表示這個(gè)Promise已經(jīng)結(jié)束了,和$.ajax()的回調(diào)函數(shù)一樣。

下面是一段分裝axios的偽代碼,fetch是基于axios封裝的代碼,實(shí)在有些看不明白或者不太確認(rèn),麻煩各位指點(diǎn)指點(diǎn),先謝謝了!

偽代碼:

return new Promise((resolve,reject)=>{
    fetch(config).then(res=>{
        resolve(res.data);
    }).catch(error=>{
        reject(error);
    });
});

問題:

1、因?yàn)?code>fetch后面可以調(diào)用thencatch,說明fetch函數(shù)返回的也是一個(gè)Promise,這么理解沒錯(cuò)吧?
2、那么Promise(new Promise)又包一個(gè)Promise(fetch)是什么意思呢?是不是直接return fetch(config)就可以了呢?
3、參考下面代碼:方式1和方式2分別返回的Promise有什么區(qū)別呢?方式2種調(diào)用resolve或者reject這個(gè)這個(gè)Promise對外部有什么區(qū)別么?(個(gè)人覺得沒區(qū)別,只不過是Promise對象的狀態(tài)不同罷了)

//方式1:
return new Promise((resolve,reject)=>{});

//方式2:
return new Promise((resolve,reject)=>{
    resolve(res.data);
    //或者
    //reject(res.data.err);
});
回答
編輯回答
心上人

方式一返回的promise狀態(tài)是pedding,方式二返回的promise狀態(tài)是resolve,具體看圖吧,希望能幫到你圖片描述

2017年6月16日 02:29