`
??let?p?=?new?Promise((resolve,?reject)?=>?{
????????????//???2.執行異步操作的任務
????????????setTimeout(()?=>?{
????????????????const?time?=?Date.now()
????????????????if?(time?%?2?==?0)?{
????????????????????resolve(‘成功了‘)
????????????????}?else?{
????????????????????reject(‘失敗了‘)
????????????????}
????????????},?500);
????????????//3.1???如果成功??resolve(value)
????????????//3.2???如果失敗?執行?reject(reason)
????????})
????????p.then(value?=>?{
????????????//成功得到value?onResolved
????????????console.log(‘success‘,?value)
????????},?reason?=>?{
????????????//失敗得到reason?onRejected
????????????console.log(‘fail‘,?reason)
????????})
???dosomething(function(result){
????????????dosomethingElse(result,function(newResult){
????????????????doThirdThing(newResult,function(finalResult){
????????????????????console.log(‘go?to?third‘+finalResult)
????????????????},failCallback)
????????????},failCallback)
????????},failCallback)
????????//解決方法??promise?的鏈式調用??
????????dosomething().then((result)=>{
??????????return?dosomethingElse(result)
????????}).then((newResult)=>{
????????????return?doThirdThing(newResult)
????????}).then((finalResult)=>{
????????????console.log(‘go?to?third‘+finalResult)
????????}).catch(failCallback)
????????//終極解決方法?async?await?
????????async?function?request(){
????????????try{
????????????????const?result=await?dosomething(result);
????????????????const?newResult=await?dosomethingElse(newResult);
????????????????const?finalResult=await?doThirdThing(newResult);
????????????console.log(‘go?to?third‘+finalResult)
????????????????
????????????}catch(e){
????????????????failCallback(e)
????????????}
????????}
???async?function?request(){
????????????try{
????????????????const?result=await?dosomething(result);
????????????????const?newResult=await?dosomethingElse(newResult);
????????????????const?finalResult=await?doThirdThing(newResult);
????????????console.log(‘go?to?third‘+finalResult)
????????????????
????????????}catch(e){
????????????????failCallback(e)
????????????}
????????}
`
原文:https://www.cnblogs.com/duanyiwen/p/13281584.html