古人云:「君子一言既出;駟馬難追」,這種「承諾未來會執行」的對象在JavaScript中稱爲Promise對象。node
Promise是JS異步編程中的重要概念,異步抽象處理對象,是目前比較流行Javascript異步編程解決方案之一
Axios 是一個基於 promise 的 HTTP 庫,能夠用在瀏覽器和 node.js 中。ios
Promise對象es6
new Promise(test).then(function (result) { console.log('成功:' + result); }).catch(function (reason) { console.log('失敗:' + reason); });
A+嚴格定義了 then 方法鏈式調用時onFulfilled/onRejected的調用順序編程
promiseObj.then(onFulfilled, onRejected) onFulfilled = function(value){ return promiseObj2 } onRejected = function(value){ return promiseObj2 }
只有所有爲resolve纔會調用 一般會用來處理 多個並行異步操做數組
const p1 = new Promise((resolve, reject) => { resolve(1111); }); const p2 = new Promise((resolve, reject) => { resolve(2222); }); const p3 = new Promise((resolve, reject) => { reject(3333); }); Promise.all([p1, p2, p3]).then(data => { console.log(data); // [1, 2, 3] //結果順序和promise實例數組順序是一致的 }, error => { console.log(error); });