promise就是一個對象,用來傳遞異步操作的消息,它代表未來纔會知道的結果。
它有兩個特點
(1)對象狀態不受外界影響。3種狀態(進行中pending,已完成resolved,已失敗rejected)
(2)一旦狀態改變就不會再變。狀態改變只有兩種可能(pending->resolved,pending->rejected)
缺點
(1)無法取消
(2)不設置回調函數,內部錯誤不會反應到外部
(3)處於pending狀態無法得知進展到哪裏
使用例子
//一般不這麼用
promise.then((value) => {
//success
}, (error) => {
//fail
//第二個參數可選
}).done();
//推薦
promise.then((value) => {
//success
}).catch((error) => {
}).done();
//ES7中的異步
async myFunction() {//---async表示函數裏面有異步操作
try {//最好加try catch
var symbol = await this.myStep();//---await後面的表達式需要等待操作結果
} catch (err) {
}
}