1. 程式人生 > 其它 >P4178 Tree 題解

P4178 Tree 題解

什麼是async/await

async/await是ES8引入的新語法,用來簡化Promise非同步操作。在async/await出現之前,開發者只能通過鏈式.then()的方式處理Promise非同步操作。

.then鏈式呼叫的優點:

      解決了回撥地獄的問題;

.then鏈式呼叫的缺點:

       程式碼冗餘、閱讀性差、不易理解

async/await的基本使用

      使用async/await簡化Promise非同步操作:

import thenFs from 'then-fs'

// 按照順序讀取檔案1,2,3的內容
async function getAllFile() {
    const r1 = await thenFs.readFile('../text/1.txt', 'utf8');
    console.log('r1:', r1);
    const r2 = await thenFs.readFile('../text/2.txt', 'utf8');
    console.log('r2:', r2);
    const r3 = await thenFs.readFile('../text/3.txt', 'utf8');
    console.log('r3:', r3);
}
getAllFile()

 不需要.then就可以直接拿到最終的結果: 

async/await 的使用注意事項:

  1. 如果function中使用了await,則function必須被async修飾;
  2. 在async方法中,第一個await之前的程式碼會同步執行,await之後的程式碼會非同步執行