ES6之Promise物件
阿新 • • 發佈:2018-12-09
首先,文章內容基本來自ECMAScript 6 入門(作者 阮一峰)
簡介
Promise物件是非同步程式設計的一種解決方案。所謂Promise,簡單來說就是一種容器,裡面包含著未來可能結束的一個事件的結果。 Promise包含三種狀態,pending,fulfilled,rejected。 表現為從pending到fulfilled,或者從pending到rejected。
下面是一個Promise例項的生成
// es5 寫法
const promise = new Promise(function(resolve, reject) {
if (/*這裡填寫操作(一般是非同步操作)*/ ) {
resolve(value);
} else {
reject(error)
}
})
// es6 寫法,以後預設使用es6語法
const promiseEs = new Promise((resolve, reject) => {
if (/*操作*/) {
resolve(value);
} else {
reject(error);
}
})
操作部位一般是一個非同步方法,resolve和reject是es6官方給的方法可以獲取到操作部位的返回結果
promise的使用
promise.then((value) => {
console.log("success" + value);
}, (error) => {
console.log("error" +error);
})
then方法接受兩個回撥函式作為引數,第一個方法在Promise物件狀態從pending變為fulfilled時呼叫,第二個方法在狀態從pending變為rejected時候呼叫。
另外 上面的使用方法可以寫成類似於try/catch的形式,將rejected時的處理剝離出來放到catch裡面處理。
promise的使用2
promise.then((value) => {
console.log("success" + value);
}).catch((error) => {
console.log("error" +error);
})