Node.js / Javascriptで無限ループを停止する方法

Nyxynyx

私たちが使用して2つの同時無限ループを開始した場合worker('hello')worker('world')、どのように我々は、後にループの1つを停止することができますか?

例えば:

const sleep = async function (duration) {
    await new Promise(r => setTimeout(r, duration));
}

const worker = async (id) => {
    while (true) {
        console.log(id);
        await sleep(2000);  // simulates a blocking call
    }
}

(async () => {
    const hello = worker('hello')
    const world = worker('world')

    // Let's assume that now a user-input requires us to stop the `worker('hello')`
    setTimeout(() => {
        console.log('stopping hello...')\
        // how to stop 'hello'?
    }, 5000)
})();
jfriend00

worker()関数の外部からこれらのループを停止することはできませんJavascriptにはその機能がありません。

それらに影響を与えることができるようにするには、それらのループがループの外側にあるもの(変数または関数の呼び出しなど)をチェックする必要があります。

外の世界から影響を受ける可能性のあるループを作成する方法は他にもたくさんあります。

いくつかの例:

  1. setInterval()関数から間隔timerIDを使用して返します。次に、呼び出しclearInterval()てループを停止できます。

  2. ループが1つのメソッドである小さなオブジェクトを作成し、そのループで、外部から変更できるインスタンス変数をテストします。


PSPromise拒否を強制するコンストラクターに置き換えるハックがいくつかある可能性があります。これにより、awaitがスローさasyncれ、次のサイクルで関数が含まれて拒否されますが、そのレベルのハックと侵入を探しているわけではないと思います。環境。

拒否される代わりにハッキングすることはできないsleep()と宣言されconstているので

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

Node.js/Express.Js で無限ループを破る

分類Dev

Node.jsで無限にreadlineする方法

分類Dev

Node.jsで無限の再帰呼び出しを回避/防止する方法は?

分類Dev

ファイルのアップロード(Node.js)でExpress BodyParserを無効にする方法

分類Dev

Node.js-レート制限を超えずにforループ内でFacebookAPIを呼び出す方法は?

分類Dev

Node.jsのループで生成される同時子プロセスの数を制限します

分類Dev

node.jsサーバーでJavaScriptを実行する方法

分類Dev

node.js-JSONStream中の無限ループ

分類Dev

sudo権限なしでCentOSにNode.jsをインストールする方法

分類Dev

node.jsでループの各実行を(適切に)追加する方法

分類Dev

node.jsアプリで追加のモジュールを要求する方法

分類Dev

Node.js配列をループする方法

分類Dev

Node JS / forEachループを遅くする方法は?

分類Dev

node.jsでAPIルートを保護する方法

分類Dev

node.jsのforループでクラスを使用する

分類Dev

node.jsが「npm start」を表すアプリを停止する方法

分類Dev

Node.jsを正常に停止する

分類Dev

Javascript(node.js)が制限する子プロセスの数

分類Dev

Node.JSでJSONを取得する方法

分類Dev

Node.jsでEventEmitterを使用する方法

分類Dev

node.jsでループをフォークする正しい方法は何ですか

分類Dev

javascript node.js next()

分類Dev

Node.js: データのストリーミングからパイプを停止する方法

分類Dev

Node.js同期ループ

分類Dev

JWT(Node.js + mongoose)を使用してRESTAPIでユーザー権限を管理するための最良の方法

分類Dev

Node.js:非同期モジュールでエンドレスループを実行する方法

分類Dev

node.jsのモジュール間で接続プールを共有する方法は?

分類Dev

node.jsでHello World JavaScriptファイルを実行する方法

分類Dev

スポーンでサブサーバーnode.jsを実行および停止する方法は?

Related 関連記事

  1. 1

    Node.js/Express.Js で無限ループを破る

  2. 2

    Node.jsで無限にreadlineする方法

  3. 3

    Node.jsで無限の再帰呼び出しを回避/防止する方法は?

  4. 4

    ファイルのアップロード(Node.js)でExpress BodyParserを無効にする方法

  5. 5

    Node.js-レート制限を超えずにforループ内でFacebookAPIを呼び出す方法は?

  6. 6

    Node.jsのループで生成される同時子プロセスの数を制限します

  7. 7

    node.jsサーバーでJavaScriptを実行する方法

  8. 8

    node.js-JSONStream中の無限ループ

  9. 9

    sudo権限なしでCentOSにNode.jsをインストールする方法

  10. 10

    node.jsでループの各実行を(適切に)追加する方法

  11. 11

    node.jsアプリで追加のモジュールを要求する方法

  12. 12

    Node.js配列をループする方法

  13. 13

    Node JS / forEachループを遅くする方法は?

  14. 14

    node.jsでAPIルートを保護する方法

  15. 15

    node.jsのforループでクラスを使用する

  16. 16

    node.jsが「npm start」を表すアプリを停止する方法

  17. 17

    Node.jsを正常に停止する

  18. 18

    Javascript(node.js)が制限する子プロセスの数

  19. 19

    Node.JSでJSONを取得する方法

  20. 20

    Node.jsでEventEmitterを使用する方法

  21. 21

    node.jsでループをフォークする正しい方法は何ですか

  22. 22

    javascript node.js next()

  23. 23

    Node.js: データのストリーミングからパイプを停止する方法

  24. 24

    Node.js同期ループ

  25. 25

    JWT(Node.js + mongoose)を使用してRESTAPIでユーザー権限を管理するための最良の方法

  26. 26

    Node.js:非同期モジュールでエンドレスループを実行する方法

  27. 27

    node.jsのモジュール間で接続プールを共有する方法は?

  28. 28

    node.jsでHello World JavaScriptファイルを実行する方法

  29. 29

    スポーンでサブサーバーnode.jsを実行および停止する方法は?

ホットタグ

アーカイブ