- JavaScriptにおけるPromiseとは何か。
- 非同期処理の最終的な完了または失敗と、その結果の値を表すオブジェクト。
- Promiseが取りうる3つの状態は何か。
- pending(保留中)、fulfilled/resolved(成功)、rejected(失敗)。
- 新しいPromiseを作成するにはどうすればよいか。
- Use the Promise constructor: new Promise((resolve, reject) => { ... })
- .then()メソッドは何を返すか。
- コールバックの戻り値でresolveされる新しいPromise。
- .catch()でPromiseのrejectをどう処理するか。
- .catch(error => { ... }) はPromiseがrejectされたときに実行され、reject理由を受け取る。
- .finally()は何をするか。
- Promiseがfulfilledであれrejectedであれ、決着した後にコードを実行し、新しいPromiseを返す。
- Promise.all()は何をするか。
- Promiseの配列を受け取り、すべてのPromiseがresolveされたときにresolveされる、または1つでもrejectされればrejectされる単一のPromiseを返す。
- Promise.race()は何をするか。
- Promiseの配列を受け取り、最初に決着したものの結果でresolveまたはrejectされるPromiseを返す。
- Promise.resolve()は何をするか。
- 与えられた値ですでにfulfilledになっているPromiseを返す。
- Promise.reject()は何をするか。
- 与えられた理由ですでにrejectedになっているPromiseを返す。
- asyncキーワードは何をするか。
- 関数を非同期としてマークし、常にPromiseを返すようにする。
- awaitキーワードは何をするか。
- async関数の実行をPromiseが決着するまで一時停止し、resolveされた値を返す。
- async関数は常に何を返すか。
- たとえ関数が普通の値をreturnしても、Promiseを返す。
- async関数内でエラーをどう処理するか。
- Use try/catch: try { ... } catch (error) { ... }
- async関数内で複数のPromiseを順番にawaitできるか。
- できる。各awaitは、次に進む前にそのPromiseがresolveされるまで実行を一時停止する。