46サードパーティasync/await
2001 ワード
はつでんき
:関数の実行を停止できます.nextメソッド呼び出し時にsuidを実行することで関数呼び出し者と関数状態を交換できます.
function* 함수명(){
yield
}
함수명.next()
非同期処理は同期処理の利点があるため、reduce社でよく用いられる.async/await
可読性があり、非同期処理のように簡単に実現できる.非同期処理の結果は、後続の処理を必要とせずにプロセスを使用できます.(常にasyncはデフォルトの解析のプロセスを返します)
asyncはインスタンスを返さなければなりませんが、asyncはプロセスを返さなければなりません.
async実行時に非同期で実行し、waitがロックされている場合に解析の処理結果を返す
asyncを使用するときに使用されるキーワードは、パラレルであるか相互に影響しているかによって異なります.
パラレル実行時にPromiseを使用します.allを使用して同時に起動するのが速く、
async function a(){
const res = await Promise.all([
new Promise (resolve => setTimeOut(()=> resolve(1), 3000)),
new Promise (resolve => setTimeOut(()=> resolve(1), 4000)),
new Promise (resolve => setTimeOut(()=> resolve(1), 1000))
]);
console.log(res);
}
a();
各方面の影響を受けて、それぞれ待機し、順序を保証しなければならない.async function b(n){
const t1 = await new Promise (resolve => setTimeOut(()=> resolve(1), 3000));
const t2 = await new Promise (resolve => setTimeOut(()=> resolve(t1+1), 4000));
const t3 = await new Promise (resolve => setTimeOut(()=> resolve(t2+2), 1000));
]);
console.log([t1, t2, t3]);
}
b(1);
エラー処理
async/awaitはtry catch、try catch、
const fetch = require('node-fetch');
const a = async ()=>{
try{
const url ='www.123.12';
const res = await fetch(url);
const data = await res.json();
}catch(err){
console.log(err);
}
};
a();
Promiseに戻ればcatchが使えますconst fetch = require('node-fetch');
const a = async ()=>{
try{
const url ='www.123.12';
const res = await fetch(url);
const data = await res.json();
};
a().then(console.log(data)).catch(console.error);
Reference
この問題について(46サードパーティasync/await), 我々は、より多くの情報をここで見つけました https://velog.io/@ljo9191/46-제너레이터-asyncawaitテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol