1. 程式人生 > 其它 >3-Promise改變狀態與指定回撥順序的問題

3-Promise改變狀態與指定回撥順序的問題

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> </head> <body> <script> let p = new Promise((resolve, reject) => { // 如果裡面是同步任務,就先改變狀態,然後執行then方法,並且執行相應的回撥 // 如果是非同步任務,就先執行then方法,並且指定回撥,然後再改變狀態(後面再執行相應回撥中的程式碼),兩種順序都可執行成功!---裡面是非同步任務的情況居多,非同步任務的時候如何延長then方法中的回撥,比如resolve的改變狀態是一秒,可以給then方法加2秒的定時器再去執行 // 總結:同步任務就是改變狀態,後指定回撥;非同步任務就是先指定回撥,後改變狀態 // 不管是同步任務,還是非同步任務,then方法中的資料都會在狀態改變完成之後,再去獲取 setTimeout(() => { resolve("Ok"); }, 1000); });
setTimeout(() => { p.then( (value) => { console.log(value); }, (reason) => { console.log(reason); } ); }, 2000); </script> </body> </html>