非同期
6598 ワード
非同期
Javascriptを学ぶと、非同期という慣れない言葉に遭遇します.他の言語ではあまり見られないこの言葉はどういう意味ですか?
同期と非同期
非同期の国語辞書の意味は、前に行った思想や演算が完了した信号を受け取ってから、特定の思想や演算を開始する方法を指す.
よくわかりません.
ウィキペディア英語辞典の非同期(asynchronous)は、(計算、通信)1つの時間、任意の順序、待つ必要がない場合に複数の動作を避けることを意味する.
一度に発生する多くの行為は、互いに等しく実行される.
私が理解している動機と非同期
動機。
Client
の要求の後、Server
は、要求に対する応答を生成し、応答する.このとき、Client
は他の動作待ちがない.
同期の場合、リクエストからレスポンスまで遅延時間があります.
リクエストとレスポンスを実行すると、次のリクエストとレスポンスが実行されます.
非同期
事前定義などの非同期の場合、リクエスト後に応答を待つのではなく、次のリクエストが送信されます.
リクエストとリクエストの間には待ち時間が少ない.
Webサイトのロードでは、すべてのファイルをロードすると待機時間が増加します.要求を分離し、複数の要求を送信し、応答構成画面に従って待機時間を短縮します.
などなど。
コードを記述する場合、特定のコードの実行結果は次のコードで使用されます.非同期で実行されるA、Bコードがある場合は、BのAの結果が必要です.他の言語で悩む理由のない悩みが生じた.function A() {
// 0초 후 10을 리턴, 비동기적 처리
setTimeout(()=> {
return 10;
}, 0)
}
function B(num) {
// num이라는 값을 받아와 0초 후 출력, 비동기적 처리
setTimeout(() => {
console.log(num);
}, 0)
}
// 원하는 것은 10을 출력하는 것
var number = A();
B(number); // undefined
リストされたコードで実行されると、BはAの結果を待たずに実行されます.では、Bでは、Aの結果が進行せず、正常に動作しない.(Aの結果については、undefined
かもしれません.)
私たちはAからBまで修行したいです.
この場合、コールバック関数を使用します.
コールバック関数
JavaScriptの関数は1レベルのオブジェクトであることを覚えておいてください.
変数に格納できます.戻ります.パラメータに渡すことができます.
関数を特定の関数のパラメータに渡し、関数を呼び出します.function A(callback) {
setTimeout(()=> {
callback(10);
}, 0)
}
function B(num) {
setTimeout(() => {
console.log(num);
}, 0)
}
A(B); // 10
このようなコードは記述されないかもしれないが,Aはコールバック関数をパラメータとして受け入れる.結果値をコールバック関数に渡します.
その結果、undefined
ではなく、予定通り10
を出力することができる.
値を渡す必要がなくても、特定のコードの後に実行されるコードを返すことができます.
次はね。
JavaScriptでは非同期を扱うコールバック関数が見られます.
callback関数を聞いたことがあるなら、callback地獄についても耳にします.
一般的なダイナミックマップ
Promiseとasync/awaitで脱出しよう
リファレンス
function A() {
// 0초 후 10을 리턴, 비동기적 처리
setTimeout(()=> {
return 10;
}, 0)
}
function B(num) {
// num이라는 값을 받아와 0초 후 출력, 비동기적 처리
setTimeout(() => {
console.log(num);
}, 0)
}
// 원하는 것은 10을 출력하는 것
var number = A();
B(number); // undefined
function A(callback) {
setTimeout(()=> {
callback(10);
}, 0)
}
function B(num) {
setTimeout(() => {
console.log(num);
}, 0)
}
A(B); // 10
Reference
この問題について(非同期), 我々は、より多くの情報をここで見つけました https://velog.io/@sinf/js-asynchronousテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol