Promise
:代表一個即將成功或失敗的非同步操作resolve
reject
then
繼續fetch()
就是依照 Promise
包起來的一組 APInew Promise(function(resolve, reject) { ... } );
const newP = new Promise((resolve, reject)=>{
// 想執行的非同步操作
if (true) {
resolve(status); // 成功時回傳
} else {
reject(status); // 失敗時回傳
}).then((data)=>{
// 成功時用 then 繼續處理
}).catch((error)=>{
// 失敗時用 catch 繼續處理
})
const newP = new Promise((resolve, reject)=>{
setTimeout(()=>{
if(Math.random() > 0.5){
resolve('success')
}
else{
reject('error')
}
}, 2000)
}).then((data)=>{
console.log(data)
}).catch((error)=>{
console.log(error)
})
MDN 使用 Promise
MDN Promise
鐵人賽:使用 Promise 處理非同步
JavaScript Promise 全介紹
JS 原力覺醒 Day14 - 一生懸命的約定:Promise
JavaScript基本功修練:Day25 - Promise
從Promise開始的JavaScript異步生活
Promise 與 Opendata
JavaScript 同步延遲 ( Promise + setTimeout )
JavaScript | 從Promise開始承諾的部落格生活
(資料很多,可以多參考理解消化一下)
再繼續討論 Promise 囉