1.Promise是什麼?promise
Promise是抽象異步處理對象以及對其進行各類操做的組件。異步
2.實例化async
使用new
來調用Promise
的構造器來進行實例化函數
var promise = new Promise(function(resolve, reject) { // 異步處理 // 處理結束後、調用resolve 或 reject });spa
3.實例方法code
promise.then(onFulfilled, onRejected)對象
resolve時 onFulfilled 會被調用
reject時 onRejected 會被調用blog
4.靜態方法io
Promise.all()
console
Promise.resolve()
例子:
function asyncFunction() { return new Promise(function (resolve, reject) { setTimeout(function () { resolve('Async Hello world'); }, 16); }); } asyncFunction().then(function (value) { console.log(value); // => 'Async Hello world' }).catch(function (error) { console.log(error); });
5.Promise的狀態
Fulfilled 成功
Rejected 失敗
Pending 既不是resolve也不是reject的狀態
6.new Promise的快捷方式
Promise.resolve(value)
Promise.resolve(42); 至關於 new Promise(function(resolve){ resolve(42); }); //resolve(42); 會讓這個promise對象當即進入肯定(即resolved)狀態,並將 42 傳遞給後面then裏所指定的 onFulfilled 函數。 Promise.resolve(42).then(function(value){ console.log(value); });
Promise.reject(value) 同理
7.promise.catch
promise.catch() 至關於 promise.then(undefined, onRejected);
參考:http://liubin.org/promises-book/