Javascript:関数は、これまでに呼び出したすべての関数のすべてのコールバックを呼び出しますか?

レルム

関数があるとしましょう。

function kevin(cb){
   //Ok  then, so async stuff here, then, when done, 
   cb(1); <== reply;
}

次に:

....
kevin(x=> console.log(x));

次にkevin()、上記の呼び出しが応答を受信する前に、別のブロックが呼び出します

kevin(y=> console.log(y));

上記のように、JavaでしばらくJavaを使用した後、これらのコールバックがJavaインターフェイスでありkevin、最初の呼び出しが返される前に2番目の呼び出しが発生た場合、2番目の呼び出しが最初の呼び出しをオーバーライドし、 2番目のみが返さcomposite patternれ、メソッドが完了したときにすべてのコールバックが記録され、実行されることを確認する必要があります。

しかし、Javascriptでは、エラーは発生せず、すべてが機能し、呼び出すすべての関数コールバックが呼び出さkevin()れます。

私はこれをAngularでtypescriptを使って行っています。したがって、上記は実際にはクラスのメソッドです。

だまします

後続の関数呼び出しは、以前の関数呼び出しを置き換えることはありません関数内で非同期イベントが待機している場合、待機ごとにイベントループで新しいコールバックがスケジュールされます。簡単な例:

setTimeout(() => console.log(1));
setTimeout(() => console.log(2));
setTimeout(() => console.log(3));

3つのコールバックはすべて、それぞれの値で起動します。

干渉を受けるのは、変数を共有している場合のみです。

let foo = 'bar';

setTimeout(() => console.log(foo));
setTimeout(() => foo = 'baz', 500);
setTimeout(() => console.log(foo), 1000);

共有fooが別のコールバックで操作されていることに気付いていない場合、最後のコールバックの結果は期待したものである場合とそうでない場合があります

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

非同期関数を同時に呼び出してすべてのコールバックを待機するにはどうすればよいですか?

分類Dev

すべての関数が完了したときにのみコールバックを呼び出す方法

分類Dev

すべての検証の前にコールバック関数が呼び出されています

分類Dev

呼び出された関数の引数を使用して関数を呼び出すために使用できるテクニックはありますか?

分類Dev

関数/コールバックの実行は外部呼び出しによって中断できますか?

分類Dev

JavaScript関数オブジェクトをオーバーライドしてすべての関数呼び出しをログに記録できますか?

分類Dev

関数のPython辞書はすべての関数を呼び出します

分類Dev

すべての関数呼び出しで例外をチェックしてスローします

分類Dev

ループにコールバック付きの関数呼び出しが含まれている場合、forループがノードjsのすべての反復を完了したかどうかを確認するにはどうすればよいですか?

分類Dev

Ajax呼び出しphp関数は、すべてのjavascript関数とページを壊します

分類Dev

これを使用してコールバックで他の関数を呼び出す

分類Dev

すべてのリスト要素でint()関数を呼び出しますか?

分類Dev

関数が複数回呼び出されたときにすべての呼び出しをAssertCalledする方法はありますか

分類Dev

呼び出し関数は最後の呼び出しでコールバックを破棄しました

分類Dev

Ignorは、すべてのユーザーIDに対して1回だけクエリ行内で関数を呼び出すことを繰り返します

分類Dev

関数内のすべての関数呼び出しを取得するには、astを使用します

分類Dev

すべてのCreateProcessについて、最初に関数を呼び出します

分類Dev

すべてのJavaScriptを実行した後に関数を呼び出す方法

分類Dev

Expressでfindbyidルート内にいるときに、すべての投稿に対して関数を呼び出すことができますか

分類Dev

モジュールのすべての関数を取得して呼び出すことができる方法はありますか?

分類Dev

std :: listのメンバー消去関数は、格納されているすべての要素のデストラクタを呼び出しますか?

分類Dev

dart:すべての関数呼び出しをラップします

分類Dev

この関数を通るC ++のすべてのパスはマクロでそれ自体を呼び出しますか?

分類Dev

Telerik OpenAccessは、すべての関数呼び出しに対して同じクエリを生成します

分類Dev

Telerik OpenAccessは、すべての関数呼び出しに対して同じクエリを生成します

分類Dev

javascriptでオブジェクト内のすべての関数を呼び出す方法はありますか?

分類Dev

QML から複数の C++ 関数を呼び出し、最初の関数に接続呼び出しが含まれている場合、コールバックがトリガーされる前に QML が続行されます。

分類Dev

NodeJSの同じ引数でコールバック関数内の親関数を呼び出します

分類Dev

SleepExは、保留中のすべての完了コールバックがタイムアウト前に呼び出されることを保証しますか?

Related 関連記事

  1. 1

    非同期関数を同時に呼び出してすべてのコールバックを待機するにはどうすればよいですか?

  2. 2

    すべての関数が完了したときにのみコールバックを呼び出す方法

  3. 3

    すべての検証の前にコールバック関数が呼び出されています

  4. 4

    呼び出された関数の引数を使用して関数を呼び出すために使用できるテクニックはありますか?

  5. 5

    関数/コールバックの実行は外部呼び出しによって中断できますか?

  6. 6

    JavaScript関数オブジェクトをオーバーライドしてすべての関数呼び出しをログに記録できますか?

  7. 7

    関数のPython辞書はすべての関数を呼び出します

  8. 8

    すべての関数呼び出しで例外をチェックしてスローします

  9. 9

    ループにコールバック付きの関数呼び出しが含まれている場合、forループがノードjsのすべての反復を完了したかどうかを確認するにはどうすればよいですか?

  10. 10

    Ajax呼び出しphp関数は、すべてのjavascript関数とページを壊します

  11. 11

    これを使用してコールバックで他の関数を呼び出す

  12. 12

    すべてのリスト要素でint()関数を呼び出しますか?

  13. 13

    関数が複数回呼び出されたときにすべての呼び出しをAssertCalledする方法はありますか

  14. 14

    呼び出し関数は最後の呼び出しでコールバックを破棄しました

  15. 15

    Ignorは、すべてのユーザーIDに対して1回だけクエリ行内で関数を呼び出すことを繰り返します

  16. 16

    関数内のすべての関数呼び出しを取得するには、astを使用します

  17. 17

    すべてのCreateProcessについて、最初に関数を呼び出します

  18. 18

    すべてのJavaScriptを実行した後に関数を呼び出す方法

  19. 19

    Expressでfindbyidルート内にいるときに、すべての投稿に対して関数を呼び出すことができますか

  20. 20

    モジュールのすべての関数を取得して呼び出すことができる方法はありますか?

  21. 21

    std :: listのメンバー消去関数は、格納されているすべての要素のデストラクタを呼び出しますか?

  22. 22

    dart:すべての関数呼び出しをラップします

  23. 23

    この関数を通るC ++のすべてのパスはマクロでそれ自体を呼び出しますか?

  24. 24

    Telerik OpenAccessは、すべての関数呼び出しに対して同じクエリを生成します

  25. 25

    Telerik OpenAccessは、すべての関数呼び出しに対して同じクエリを生成します

  26. 26

    javascriptでオブジェクト内のすべての関数を呼び出す方法はありますか?

  27. 27

    QML から複数の C++ 関数を呼び出し、最初の関数に接続呼び出しが含まれている場合、コールバックがトリガーされる前に QML が続行されます。

  28. 28

    NodeJSの同じ引数でコールバック関数内の親関数を呼び出します

  29. 29

    SleepExは、保留中のすべての完了コールバックがタイムアウト前に呼び出されることを保証しますか?

ホットタグ

アーカイブ