真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

nodejs漸入佳境[14]-promise對象處理異步-創(chuàng)新互聯(lián)

Promise

promise是nodejs的對象,用于處理異步的同步操作。
new Promsie新建一個promise對象,兩個參數(shù)(resolve,reject)是兩個函數(shù)。
當(dāng)調(diào)用resolve意味著操作成功。
當(dāng)調(diào)用reject意味著操作失敗。

成都創(chuàng)新互聯(lián)于2013年創(chuàng)立,先為玉門等服務(wù)建站,玉門等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為玉門企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

resolve和reject都只會執(zhí)行一次。

then 函數(shù)會在promise執(zhí)行完畢之后調(diào)用。
第一個參數(shù)回調(diào)函數(shù)會在resolve成功后調(diào)用,第二個回調(diào)函數(shù)會在reject觸發(fā)后調(diào)用。

resolve操作成功

1
2
3
4
5
6
7
8
9
10
11
12
var somePromise = new Promise((resolve,reject)=>{
 setTimeout(()=>{
     resolve('hey it works');
 },2500);

});

somePromise.then((message)=>{
 console.log('Success',message);
},(errorMessage)=>{
 console.log('Error:',errorMessage);
});

打印出hey it works

reject操作失敗

1
2
3
4
5
6
7
8
9
10
11
12
var somePromise = new Promise((resolve,reject)=>{
 setTimeout(()=>{
     reject('ai it is error');
 },2500);

});

somePromise.then((message)=>{
 console.log('Success',message);
},(errorMessage)=>{
 console.log('Error:',errorMessage);
});

打印出Error: ai it is error

復(fù)雜promise

帶參數(shù)并且多重then函數(shù)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var asyncAdd = (a,b)=>{
   return new Promise((resolve,reject)=>{
       setTimeout(()=>{
         if(typeof a==='number' && typeof b==='number'){
           resolve(a+b);
         }else{
           reject('Argument must be number');
         }
       });
   });
};

asyncAdd(5,7).then((res)=>{
 console.log('Result',res);
 return asyncAdd(res,'33');
},(errorMessage)=>{
 console.log(errorMessage);
}).then((res)=>{
 console.log('should be 45',res);
},(errorMessage)=>{
 console.log(errorMessage);
});

執(zhí)行結(jié)果:

1
2
3
Result 12
Argument must be number
Error: ai it is error

多重then特性

在asyncAdd(5,‘7’)函數(shù)reject失敗后,第二個then仍然調(diào)用的是第一個回調(diào)函數(shù)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var asyncAdd = (a,b)=>{
   return new Promise((resolve,reject)=>{
       setTimeout(()=>{
         if(typeof a==='number' && typeof b==='number'){
           resolve(a+b);
         }else{
           reject('Argument must be number');
         }
       });
   });
};

asyncAdd(5,'7').then((res)=>{
 console.log('Result',res);
 return asyncAdd(res,'33');
},(errorMessage)=>{
 console.log(errorMessage);
}).then((res)=>{
 console.log('should be 45',res);
},(errorMessage)=>{
 console.log(errorMessage);
});

結(jié)果為:

1
2
3
Argument must be number
should be 45 undefined
Error: ai it is error
  • 本文鏈接: https://dreamerjonson.com/2018/11/15/node-14-promise/

  • 版權(quán)聲明: 本博客所有文章除特別聲明外,均采用 CC BY 4.0 CN協(xié)議 許可協(xié)議。轉(zhuǎn)載請注明出處!

nodejs漸入佳境[14]-promise對象處理異步

創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國云服務(wù)器,動態(tài)BGP最優(yōu)骨干路由自動選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨(dú)有T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動現(xiàn)已開啟,新人活動云服務(wù)器買多久送多久。


名稱欄目:nodejs漸入佳境[14]-promise對象處理異步-創(chuàng)新互聯(lián)
當(dāng)前地址:http://weahome.cn/article/hidci.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部