Node.jsの実行順序を理解する方法は?

user3326078

私は現在、いくつかのNode.jsコードをテストしようとしています。今、私は自分のコードconsole.log()がコードの実行順序とは異なる順序になっている理由を理解しようとしています。これは、OS関連のNode.js関数呼び出しに関するものです。

私のスクリプトはこれを順番に行います:

//First
fs.readdir(){ //read from a directory all the available files
   console.log some stuff #a
}

//Second
fs.readFile(){ //read entire text file
   console.log some stuff #b
}

//Third
//create readline interface using fs.createReadStream(filedir) then

interface{ //read from text file line by line
   console.log some stuff #c
}

関数aはパスを使用します:__ dirname + '/ text_file /'
関数bおよびcはパスを使用します:__ dirname、 ' / text_file / text1.txt'

出力:

a
c
b

誰かがこの注文が発生する理由を説明できますか?私はオペレーティングシステムやNode.jsのバックグラウンドで何が起こっているのかについての専門家ではありません。私がこれに頼るとしたら、この注文は私のアプリを台無しにしますか?

jfriend00

このような複数の非同期操作を次々に開始すると、完了順序が不確定になります。これらの操作は、Javascriptとは独立して実行されます。これらはいわゆる「ノンブロッキング」であり、関数呼び出しからすぐに戻り、Javascriptが実行を継続することを意味します。しばらくして、彼らは終了し、Javascriptイベントキューにイベントを挿入し、次にあなたが彼らに渡したコールバックが呼び出されます。これらの関数の「非同期、非ブロッキング」の側面は、操作が完了するのを「待機」してから戻ることを意味します。

すべて同時に実行中の複数の非同期操作の完了順序は、どちらが他の操作よりも先に作業を終了するかによって異なります。

それらを順番に実行する場合は、最初の完了コールバックで2番目の操作を開始し、3番目の完了コールバックで3番目の操作を開始して、順番に実行するように特別にコーディングする必要があります。

例えば:

fs.readdir(somePath, function(err, files) {
    if (err) {
        console.log(err);
    } else {
        fs.readFile(someFilename, function(err, data) {
            if (err) {
                console.log(err);
            } else {
                // done with both asynchronous operations here
                console.log(data);
            }
        });
    }
});

このトピックに関するその他の関連資料:

node.jsで非同期readFileメソッドを順序に従わせる方法

一連の約束を同期する方法は?

非同期呼び出しが含まれる場合、特定の実行順序を設定するにはどうすればよいですか?

非同期Javascriptの実行はどのように行われますか?そして、いつreturnステートメントを使用しないのですか?

シングルスレッドの同期と非同期の混乱

コールバック関数でJavascriptで非同期に処理できるのはなぜですか?

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

NODE.JSは特定の順序でコードを実行します

分類Dev

関数の実行順序を変更すると、アプリが同期しなくなります--node.js

分類Dev

Node JS関数を順番に実行する方法

分類Dev

Node.js 実行順序クエリ

分類Dev

Node.js:非同期コードを順番に実行する方法

分類Dev

Node.JS / Express-A-Syncがランダムな順序で実行されるように見えるのはなぜですか?

分類Dev

node.jsのGoogleAppEngineでnightmare.jsを実行する方法

分類Dev

Node.jsでコードを順番に実行する

分類Dev

node.jsコードを順次実行する

分類Dev

gruntでnode.jsアプリを実行する方法は?

分類Dev

Node.JS Loopback + Foreverを実行する方法は?

分類Dev

node.jsのawsでcronジョブを実行する方法

分類Dev

node.jsを使用して指定された順序でURLのコンテンツを収集する方法

分類Dev

サーバーTCP(node.js)での誤った順序の実行

分類Dev

このNode.jsコードスニペットを理解する方法は?

分類Dev

Node.jsのpromiseを理解する

分類Dev

WindowsでNode.jsを使用してNginxを実行する方法は?

分類Dev

Node.jsスクリプトをubuntuのサービスとして実行する最良の方法は?

分類Dev

Node.jsの使用中にfirebase(admin)で検索クエリを実行する方法はありますか?

分類Dev

node.js child_process APIでjarファイルを実行する方法は?

分類Dev

esp8266(Nodemcu開発ボード)でNode.jsを実行する方法は?

分類Dev

MongoDB。node.jsでストアド関数を実行する方法は?

分類Dev

Node js 2秒ごとにaxios.getを実行する方法は?

分類Dev

タイムアウトでnode.jsを実行する方法は?

分類Dev

Node.jsが終了するのを妨げているものを理解する方法は?

分類Dev

node.js内で文字列の形式でPHPプログラムを実行する方法は?

分類Dev

Node JSで長時間実行されているタスクを実行/中止する方法は?

分類Dev

AndroidでNode.Jsを実行する

分類Dev

Docker内のポート80でnode.jsを実行する方法

Related 関連記事

  1. 1

    NODE.JSは特定の順序でコードを実行します

  2. 2

    関数の実行順序を変更すると、アプリが同期しなくなります--node.js

  3. 3

    Node JS関数を順番に実行する方法

  4. 4

    Node.js 実行順序クエリ

  5. 5

    Node.js:非同期コードを順番に実行する方法

  6. 6

    Node.JS / Express-A-Syncがランダムな順序で実行されるように見えるのはなぜですか?

  7. 7

    node.jsのGoogleAppEngineでnightmare.jsを実行する方法

  8. 8

    Node.jsでコードを順番に実行する

  9. 9

    node.jsコードを順次実行する

  10. 10

    gruntでnode.jsアプリを実行する方法は?

  11. 11

    Node.JS Loopback + Foreverを実行する方法は?

  12. 12

    node.jsのawsでcronジョブを実行する方法

  13. 13

    node.jsを使用して指定された順序でURLのコンテンツを収集する方法

  14. 14

    サーバーTCP(node.js)での誤った順序の実行

  15. 15

    このNode.jsコードスニペットを理解する方法は?

  16. 16

    Node.jsのpromiseを理解する

  17. 17

    WindowsでNode.jsを使用してNginxを実行する方法は?

  18. 18

    Node.jsスクリプトをubuntuのサービスとして実行する最良の方法は?

  19. 19

    Node.jsの使用中にfirebase(admin)で検索クエリを実行する方法はありますか?

  20. 20

    node.js child_process APIでjarファイルを実行する方法は?

  21. 21

    esp8266(Nodemcu開発ボード)でNode.jsを実行する方法は?

  22. 22

    MongoDB。node.jsでストアド関数を実行する方法は?

  23. 23

    Node js 2秒ごとにaxios.getを実行する方法は?

  24. 24

    タイムアウトでnode.jsを実行する方法は?

  25. 25

    Node.jsが終了するのを妨げているものを理解する方法は?

  26. 26

    node.js内で文字列の形式でPHPプログラムを実行する方法は?

  27. 27

    Node JSで長時間実行されているタスクを実行/中止する方法は?

  28. 28

    AndroidでNode.Jsを実行する

  29. 29

    Docker内のポート80でnode.jsを実行する方法

ホットタグ

アーカイブ