ジェニーン・レイトとasync/await
1.ジェニーン・レイトとは?
ES 6が導入したサードパーティは,コードブロックの動作を一時停止し,必要に応じて回復できる特殊な関数である.
サードパーティ関数は、関数が実行する制御権を関数呼び出し元に譲渡することができる.すなわち、関数呼び出し者は、関数の実行を一時停止または再起動することができる.関数の制御権は、関数によって排他されるのではなく、関数呼び出し元に譲渡できます.
サードパーティ関数は、関数呼び出し者と関数の状態を交換できます.
jner layer関数を呼び出すと、jner layerオブジェクトが返されます.
2.サードパーティ関数の定義
サードパーティ関数は、
function*
キーワードとして宣言されます.次いで、1つまたは複数の
yield
式が含まれる.function* genDecFunc() {
yield 1;
}
3.サードパーティオブジェクト
jner rator関数を呼び出すと、通常の関数のように関数コードブロックを実行するのではなく、jner ratorオブジェクトが生成され、返されます。
JENNERオブジェクトはnextメソッドを持つイテレーションですが、イテレーションには
return, throw
メソッドはありません.nextメソッドを呼び出すと、
yield
式に実行されるコードブロックは、yield
の値をvalue property値、falseをdone
の値とするウィジェットツリーオブジェクトを返す.呼び出し
return
メソッドは、パラメータで渡されたproperty値をproperty値として返すイテレーションカットオブジェクトを返します.function* genDecFunc() {
try {
yield 1;
yield 2;
yield 3;
} catch (e) {
console.error(e);
}
}
const generator = genDecFunc();
console.log(generator.next());
console.log(generator.return('end'));
4. aynsc/await
ES 8は
async/await
を導入した.async/await
プロミスをベースに動作します.async function fetchTodo() {
const url = 'https://jsonplaceholder.typicode.com/todos/1';
const response = await fetch(url);
const todo = await response.json();
console.log(todo);
}
4.1 async関数
await
キーワードは、async
関数の内部で使用する必要があります.いつもフロミスを返します.4.2 awaitキーワード
await
キーワード待ちプロセスがsettled
の状態になり、settled
の状態になるとresolve
の処理結果に戻る.await
はスミスの前で使用しなければなりません.4.3エラー処理
async/await
ではtrycatch文を使用できます.const foo = async () => {
try {
const wrongUrl = 'https://wrong.url';
const response = await fetch(wrongUrl);
const data = await response.json();
console.log(data);
} catch (err) {
console.error(err);
}
};
Reference
この問題について(ジェニーン・レイトとasync/await), 我々は、より多くの情報をここで見つけました https://velog.io/@cjy0029/제너레이터와-asyncawaitテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol