1. 程式人生 > 實用技巧 >Promise 之基礎介紹

Promise 之基礎介紹

  • JavaScript 中的 promise 代表的是已經正在發生的程序(程式或者功能)
  • Promise是JS中進行非同步程式設計的新的解決方案
  • 從語法上面說Promise是一個建構函式
  • 從功能上面說Promise物件用來封裝一個非同步操作並可以獲得其結果
  Promise有三種狀態pedding(等待執行完成 或者待定 )resolved(結果成功)rejected(結果失敗)執行結果只有這兩種並且從padding狀態改變為resolved或者rejected.只能改變一次無論成功與失敗,Promise都會返回一個結果,成功的結果一般稱為value(值),失敗的結果一般稱為reason(原因)
  
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      new Promise((resolve, reject) => {
        
//這裡是new 一個Promise物件,Promise物件中傳了一個函式(這個函式用來執行非同步操作,該函式又傳入了resolve(成功)和reject(失敗)兩個引數(函式)),
      在這個函式中只有執行了 resolve 或者 reject 才能進入then()函式中,如果不執行就不會進入then函式中
//執行非同步操作 setTimeout(() => { // 使用setTimeout模仿非同步操作 let time = Date.now(); //偶數成功 否則失敗 if (time % 2
== 0) { //如果成功呼叫 resolve(value) 函式 value值結果 resolve('成功的資料:' + time); //狀態值發生改變 從 pedding 改變成 resolved } else { //失敗呼叫reject(reason)函式 reason 原因 reject('失敗的資料:' + time); //狀態值發生改變 從 pedding 改變成 rejected } }, 50); }).then( (value) => { // 接收得到成功的value資料 onResolved console.log('接收得到的成功回撥', value); }, (reason) => { //接收得到失敗的reason資料 onRejected console.log('接收得到的失敗回撥', reason); } ); </script> </body> </html>