ペロハム大学

ヤルゾー

プロを目指す人のためのTypeScript入門 読書メモ⑭ 第8章(3)

■ 思ったこと

早くAngularのチュートリアルやりたいぜ…

■ 第8章 非同期処理(8.4~8.5.4)

  • 前回まではthenで処理を動かしていたが、実際はもっと使われる書き方があるらしい

ちょっとおさらい

  • Promiseみたいに書くけど、Promiseオブジェクトってどういうもんなの
  • なんも入ってなければこんな感じPromise { <pending> }
  • 例のようにnumber入れたらこんな感じで返ってくるよPromise { 100 }
  • だから型引数が必須なのですね!

async関数

  • functionの前にasyncをつけるasync function構文から始まるぞ
  • アローで書くならconst main = async () => { 処理 }って感じ
  • 返り値は必ずPromise!だから中身を使いたいなら返り値.then()
    • こんな感じで使えるconst result = 返り値.then((変数) => {なんか処理})

await式

  • async関数の中で使える構文!
  • awaitを使うとasync関数の実行が一時中断する
  • awaitがくっつく式はPromiseオブジェクト、Promiseの結果が出るまで待ってくれるのさ
// await実行されたら解決するまで中断する
async function getNumber() {
  try {
    console.log(`getNumber staert`);
    await sleep(1000);
    console.log(`getNumber end`);
    return 30;
  } catch {
    console.log(`失敗!`);
  }
}

console.log(`実行!`);
getNumber().then((num) => {
  console.log(`getしたNumberは${num}`);
});

// awaitを待ってる間外の関数は普通に進む
console.log(`待機中~`);

//[console]
// 実行!
// getNumber staert
// 待機中~
// getNumber end
// getしたNumberは30

■ 感想

難しいが、だいたいは、、前よりはOK!後輩に説明できるかというと、、??!次の9章はコンパイラオプションはさらっと読んだので、またプロジェクト1から作るときに熟読します!ということでここで一区切り!!基本的なことが学べたというか、TypeScriptに慣れることができたって感じ!!土台作りとしてほんとにわかりやすかった!!!ありがとうございます!!!!