91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-07-19 11:24:27 來源:網絡 閱讀:519 作者:jonson_jackson 欄目:開發技術

Promise

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

resolve和reject都只會執行一次。

then 函數會在promise執行完畢之后調用。
第一個參數回調函數會在resolve成功后調用,第二個回調函數會在reject觸發后調用。

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

復雜promise

帶參數并且多重then函數。

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);
});

執行結果:

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

多重then特性

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

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);
});

結果為:

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/

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

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

蒲江县| 南宫市| 丁青县| 调兵山市| 桓仁| 华蓥市| 安宁市| 龙游县| 阿鲁科尔沁旗| 甘南县| 台东县| 靖江市| 连州市| 昌黎县| 梅河口市| 紫金县| 攀枝花市| 米泉市| 顺平县| 鄂托克旗| 淅川县| 新田县| 淮滨县| 庆云县| 苏尼特右旗| 交口县| 塔城市| 苍梧县| 海城市| 德江县| 辽中县| 富顺县| 望都县| 建始县| 麦盖提县| 淮滨县| 大荔县| 多伦县| 乐昌市| 县级市| 广德县|