コールバック関数|コアJavaScript 4
5442 ワード
コールバック関数
他のコードパラメータに渡される関数.
要求を受け取った後、自分で操作を実行し、適切な時間に自発的に通知する.
->制御権をパラメータとして他のコード(関数またはメソッド)の関数に渡します.
コールバック関数のオーバーフロー制御
コールバック関数は関数です
コールバック関数を使用してオブジェクトを渡す方法を使用すると、メソッドではなく関数として呼び出されます.
本人が主張するオブジェクトとの直接的な関連が消えたため,この関数が指す点が変化した.
コールバック関数でthisに別の値をバインドする
コールバック関数でこのオブジェクトを表示する方法
エンクロージャの作成方法
従来の方法は、変数を使用するのではなく、コールバック関数として別の変数に入れることです.let obj = {
name : 'obj1',
func : function() {
let self = this;
return function() {
console.log(self.name);
}
}
}
let callback = obj1.func();
setTimeout(callback, 1000);
bindの使い方
let obj = {
name : 'obj1',
func : function() {
return function() {
console.log(this.name);
}
}
}
let callback = obj1.func.bind(obj1);
setTimeout(callback, 1000);
コールバック地獄と非同期制御
callback地獄?
コールバック関数を匿名関数に渡すプロセスを繰り返し、コードのインデント深さに耐えられない
JavaScriptの非同期タスクの処理中に発生します.
非同期vs同期
非同期:現在実行中のコードが完了しているかどうかにかかわらず、すぐに次のコードにジャンプします.要求、実行待ち、保留など
≪同期化|Synchronize|oem_src≫:現在実行中のコードが完了してから、次のコードが実行されます.即時処理
カルバック地獄を解決する方法
伝達値の順序が下から上になるため,コードを自然に解釈することは困難である.
記名関数に変換
Promise
コールバック関数は呼び出し時にすぐに実行されますが、resolveまたはexecute関数を呼び出す構文がある場合は、1つの関数を実行する前に次の(その後)またはcatch構文に移動しません.
Generator
Generator関数を実行すると、nextというメソッドを持つ奇形が返されます.このnextメソッドを呼び出すと、関数は最初に表示された最終品目で停止します.非同期タスクを順番に実行できます.
Promise + Async/await
このようにコルバー地獄を脱出する方法はたくさんありますが、
可読コードは、可能な限り順番に記述される.
Reference
この問題について(コールバック関数|コアJavaScript 4), 我々は、より多くの情報をここで見つけました
https://velog.io/@deli-ght/콜백-함수-코어자바스크립트-4
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
コールバック関数でこのオブジェクトを表示する方法
エンクロージャの作成方法
従来の方法は、変数を使用するのではなく、コールバック関数として別の変数に入れることです.
let obj = {
name : 'obj1',
func : function() {
let self = this;
return function() {
console.log(self.name);
}
}
}
let callback = obj1.func();
setTimeout(callback, 1000);
bindの使い方
let obj = {
name : 'obj1',
func : function() {
return function() {
console.log(this.name);
}
}
}
let callback = obj1.func.bind(obj1);
setTimeout(callback, 1000);
コールバック地獄と非同期制御
callback地獄?
コールバック関数を匿名関数に渡すプロセスを繰り返し、コードのインデント深さに耐えられない
JavaScriptの非同期タスクの処理中に発生します.
非同期vs同期
非同期:現在実行中のコードが完了しているかどうかにかかわらず、すぐに次のコードにジャンプします.要求、実行待ち、保留など
≪同期化|Synchronize|oem_src≫:現在実行中のコードが完了してから、次のコードが実行されます.即時処理
カルバック地獄を解決する方法
伝達値の順序が下から上になるため,コードを自然に解釈することは困難である.
記名関数に変換
Promise
コールバック関数は呼び出し時にすぐに実行されますが、resolveまたはexecute関数を呼び出す構文がある場合は、1つの関数を実行する前に次の(その後)またはcatch構文に移動しません.
Generator
Generator関数を実行すると、nextというメソッドを持つ奇形が返されます.このnextメソッドを呼び出すと、関数は最初に表示された最終品目で停止します.非同期タスクを順番に実行できます.
Promise + Async/await
このようにコルバー地獄を脱出する方法はたくさんありますが、
可読コードは、可能な限り順番に記述される.
Reference
この問題について(コールバック関数|コアJavaScript 4), 我々は、より多くの情報をここで見つけました
https://velog.io/@deli-ght/콜백-함수-코어자바스크립트-4
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
Reference
この問題について(コールバック関数|コアJavaScript 4), 我々は、より多くの情報をここで見つけました https://velog.io/@deli-ght/콜백-함수-코어자바스크립트-4テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol