1. 程式人生 > 實用技巧 >Android中五種常用對話方塊的使用

Android中五種常用對話方塊的使用

promise和async/await都是處理非同步請求

/**
* 註釋:
*js中的同步、非同步問題通常是指ajax回撥:
*   1)同步:同比呼叫,程式發出ajax呼叫後就暫停,到伺服器有迴應才繼續
*   2)非同步:非同步呼叫,程式發出ajax呼叫後立即執行後面程式碼,伺服器返回資訊後會自動觸發回撥函式進行處理
*   3)優缺點:非同步程式不會程式卡頓現象,同步用於需要立即獲得結果並實時處理的情況
*/

一、promise的基本用法:

//Promise物件,簡單來說就是一個容器,裡面儲存著非同步操作的最終完成 (或失敗)及其結果值

1)基本語法:

let p = new Promise((resolve,reject)=>{
          
//.... resolve('success') }); p.then(result=>{ console.log(result) ; //success });

2)三個狀態 : pending (執行中) 、success(成功) 、 rejected (失敗)

3)鏈式呼叫:

let p = new Promise((resolve,reject)=>{
    
      reject('error');
     });
 //Promise.prototype.catch用於指定Promise狀態變為rejected時的回撥函式,可以認為是.then的簡寫形勢,返回值跟.then一樣   
p.cath(result=>{ console.log(result); })

二、async、await

async用於宣告一個函式是非同步的,而await可以認為是async wait的簡寫,等待一個非同步方法執行完成。

/**
* Async/Await讓 try/catch 可以同時處理同步和非同步錯誤 * async,await : 將非同步強行轉換為同步處理,async/await是寄生於Promise的語法糖
*/

三、錯誤捕獲:

// 如果是reject狀態,可以用try-catch捕捉  ,  await關鍵字只能用在aync定義的函式內
let p =new Promise((resolve,reject)=>{ setTimeout(()=>{ reject('error') },1000); }) async function demo(params){ try{ let result = await p; } catch(e) { consloe.log(e) } } demo();