210721同期と非同期、コールバック
2302 ワード
同期(synchronize)と非同期(asynchronize)
≪同期処理|Synchronize Process|oem_src≫:現在処理されているタスクが完了したら、次のタスクを実行します.
非同期処理:物事が終わるまで待つのではなく、次のことを処理します.
生活コードの説明が基礎的すぎて、きょろきょろしている.
[Async,非同期および同期]PromiseからAwaitへ
async/awaitを使用する前に承諾を理解する
文章を参考にした.
コールバック関数
パラメータ伝達関数によって、関数内部で実行される関数.
まず関数を渡し、後で呼び出します.
システムがイベントが発生したり、ある時点に達したりしたときに呼び出される関数.言える.
var a = function(){
console.log('A');
}
function slowfunc(callback){
callback();
}
slowfunc(a);
ここで、コールバック関数aはcallbackパラメータとして扱われる.関数を宣言するときではなく、slowfunc内で関数を呼び出すときに実行します.
Promise
コールバックhellを導入して、複数のコールバック関数が重なる場合に発生するコールバックを解決します.
宣言:promiseオブジェクトの作成
アクションセクション:宣言されたオブジェクトを呼び出す
pending
new Promiseを使用してPromiseを作成してからresolveまたは拒否を呼び出す瞬間まで
fullfilled
処理が完了し、結果値が返された状態
非同期処理関数値が成功した場合、resolveメソッドが呼び出され、resolveメソッドパラメータに設定された非同期関数の結果値が渡されます.この結果値はthenによって後続処理されます.
rejected
処理に失敗またはエラーが発生した状態
function getFirstUser() {
return getUsers().then(function(users) {
//처리가 완료되면 then으로 넘어온 함수의 결과값 전달
return users[0].name;
}).catch(function(err) {
//에러 처리
return {
name: 'default user'
};
});
}
getUsers()はpromiseを返すので、待つことができます.awaitを使用して同じコードを表現すると、こうなります.
コールバック関数ではなくtry/catchでエラーを処理します.
async function getFirstUser() {
try {
let users = await getUsers();
return users[0].name;
} catch (err) {
return {
name: 'default user'
};
}
}
Reference
この問題について(210721同期と非同期、コールバック), 我々は、より多くの情報をここで見つけました https://velog.io/@autumndr3ams/210721-동기와-비동기-callbackテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol