Promise
var runAsync = () => {
var p = new Promise(function(resolve, reject) {
//做一些異步操作
setTimeout(function() {
console.log('執行完成');
resolve('隨便什么數據');
}, 2000);
});
return p;
}
runAsync().then(function(data) {
console.log(data);
return new Promise(function(resolve, reject) {
resolve(1, 2, 3, 4)
})
}).then(function(data) {
console.log(data);
return "84651"
}).then(function(data) {
console.log(data);
});
- Promise -對象,接收函數作為參數,該函數兩個參數分別是 resolve和reject。(resolve reject 函數)
- .then()方法返回新的Promise實例
- .then()方法中的回調函數/function(data){}/完成后,會將返回結果作為參數,傳入下一級的回調函數
- 如果/function(data){}/ 返回Promise對象 這時候下一個回調函數,就會等待該Promise對象的狀態發生變化,才會被調用. //等待回調
- 即下一個.then()相當於該回調函數返回Promise對象的.then()
- 如果返回參數: 將返回結果作為參數傳入下一個回調函數/function(data){}/
- 該then方法返回的新的promise的狀態會變成fulfilled(同時成功的回調函數也會被調用)。//立即執行