Promise
whck6
最早是在社群提出,但 ES6 推出後就被列入標準了,原生提供 Promise
對象,用於處理非同步問題。例如:下載網路上的圖片之後顯示。
基本用法
let promise = new Promise(function (resolve, reject) {
// ... some code
if (true) {
resolve(value);
} else {
reject(error);
}
});Promise.resolve()
let p = Promise.resolve(arg);傳入的參數是 thenable 將會執行該對象的 then 然後回傳一個 Promise 狀態為
resolved 的對象;傳入的參數不具有 thenable 將會回傳一個 Promise 狀態為
resolved 的對象。
let p = Promise.resolve("Hello");
p.then(function (s) {
console.log(s);
});
// Hello沒有傳入參數將會回傳一個 Promise 狀態為 resolved 的對象。
Promise.reject()
let p = Promise.reject(arg);大致原理跟 Promise.resolve() 一樣,只是狀態為 rejected.