# promise chain 寫法 ![](https://i.imgur.com/6Rg6UMv.jpg) 語法: function correctTest(name){ ///--->步驟1 return new Promise(function(resolved,reject){ console.log('作業批改中'); setTimeout(function(){ let score = Math.round(Math.random()*100); if(score >=70){ resolved({ ///--->步驟2 name, score }) }else{ reject('退學'); } },500) }) } function checkRework(dataThenRework){ ///--->步驟3 return new Promise(function(resolved,reject){ console.warn('獲得的獎品是?'); setTimeout(()=>{ if(dataThenRework.score >= 90){ resolved(`${dataThenRework.name}獲得遙控飛機`); ///--->步驟4 }else if(dataThenRework.score >=60 && dataThenRework.score <90){ resolved(`${dataThenRework.name}獲得遙控汽車`); } },500); }); } correctTest('小良') ///--->步驟1 .then(function(data){ ///--->步驟2 //--->此處須特別留意: 需要加上 return 才可將資料拋向第二次的 Promise 運作 return checkRework(data); ///--->步驟3 }) .then(function(rework){ ///--->步驟4 console.log(rework); }) .catch(function(error){ console.log(error); });