亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

玛多县| 海宁市| 武清区| 临夏县| 岚皋县| 深圳市| 屯留县| 抚顺市| 泸溪县| 巴南区| 苏尼特右旗| 鄢陵县| 会理县| 英吉沙县| 孝义市| 南昌县| 洛宁县| 化州市| 上犹县| 雷州市| 诏安县| 漳州市| 武清区| 富宁县| 阳新县| 深州市| 东乡族自治县| 碌曲县| 广汉市| 连云港市| 阿拉尔市| 营山县| 大化| 睢宁县| 黄陵县| 东至县| 吉木乃县| 舒城县| 宣恩县| 榆中县| 新龙县|