検索
ホームページウェブフロントエンドフロントエンドQ&Aノードの同期と非同期の違いは何ですか?

ノードの同期と非同期の違いは次のとおりです: 同期とは、プログラムが上から下へ実行されることを意味します。次のステップは、前のステップが実行された後にのみ実行できます。非同期は、待機する必要がないことを意味します。操作、非同期プログラミングはコールバックに依存して実装できますが、コールバック後のプログラムが非同期であることを意味するわけではありません。

ノードの同期と非同期の違いは何ですか?

このチュートリアルの動作環境: Windows10 システム、nodejs バージョン 12.19.0、Dell G3 コンピューター。

ノードの同期と非同期の違いは何ですか

同期とはプログラムが上から下に実行されることを意味し、非同期とはノードの同期を待つ必要がないことを意味します。以下の操作を実行する前に、上記のコマンドを実行します。非同期プログラミングはコールバックに依存しますが、コールバックを使用したからといってプログラムが非同期になるとは言えません。

同期英語: sync (同期)

非同期英語: async (非同期)

同期 API: 現在の API の実行が完了した後でのみ、実行を続行できます。次の API

console.log('before'); 
console.log('after');

非同期 API: 現在の API の実行は後続のコードの実行をブロックしません

console.log('before');
setTimeout(
   () => { console.log('last');
}, 2000);
console.log('after');

同期 API と非同期 API の違い(戻り値の取得)

同期APIは戻り値からAPIの実行結果を取得できますが、非同期APIは取得できません(非同期APIにreturnを書いても結果は取得できないようです?)

// 异步
  function getMsg () { 
      setTimeout(function () { 
          return { msg: 'Hello Node.js' }
      }, 2000);
  }
  const msg = getMsg (); //函数没有写return 默认是返回 undefined
cnsole.log(msg); // 输出的是 undefined,因为定时器还没执行完就执行了输出

コールバック関数

独自の関数を定義し、他の関数を呼び出せるようにします。

// getData函数定义
 function getData (callback) {}
  // getData函数调用
 getData (() => {});
/*例子------------------*/
function getMsg (callback) {
    setTimeout(function () {
        callback ({ msg: 'Hello Node.js' })
    }, 2000);
}
getMsg (function (msg) { 
    console.log(msg);
});

同期 API と非同期 API の違い (コードの実行順序)

同期 API は上から下へ順番に実行されます。前のコードでは実行がブロックされます。次のコードの

非同期 API は、コードを実行する前に API の実行が完了するのを待ちません。

コード実行シーケンスの分析

JavaScript は同期 API に分割されます。コード実行領域と非同期コード実行領域の間にはコールバック関数のキュー接続があります。まず、JavaScript は同期コード領域のすべての内容を実行し、次に非同期コード領域に移動してコードを実行し、非同期コード領域で実行されたコード ブロックを見つけて、すぐにそのコードに対応するコールバック関数を見つけます。非同期コード ブロックを作成し、同期コード実行領域に配置します。Node.js で非同期 API

#ファイル読み取り API を実行するには、コールバック関数があります。 。

イベント監視 API にはコールバック関数もあります。 (イベント処理関数はコールバック関数、イベントリスニング API は非同期 API)

非同期 API の背後にあるコードの実行は、現在の非同期 API の実行結果に依存しますが、実際には後続のコードが実行されたときに非同期 API が返されません。その結果、この問題を解決するにはどうすればよいでしょうか?

たとえば、ファイル A、ファイル B、ファイル C を順番に読み込むという要件があります (A を読み込んだ後、B を読み、次に C を読みます。同時に読み込むことはできません)

上記の要件が実現されると、B を読み取る操作が A のコールバック関数に配置され、C を読み取る操作が B のコールバック関数に配置されるため、多くの入れ子レベルになります (コールバック地獄)

const fs = require('fs');
fs.readFile('./1.txt', 'utf8', (err, result1) => {
console.log(result1)
fs.readFile('./2.txt', 'utf8', (err, result2) => {
console.log(result2)
fs.readFile('./3.txt', 'utf8', (err, result3) => {
console.log(result3)
})
})
});

推奨学習: " nodejs ビデオ チュートリアル >>

以上がノードの同期と非同期の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Reactのエコシステムのサイズ:複雑な風景をナビゲートしますReactのエコシステムのサイズ:複雑な風景をナビゲートしますApr 28, 2025 am 12:21 AM

tonavigatereAct'somplexEcosystemively、理解を理解し、認識していることを認識していることを認識しているandweakness、およびIntegreatemtoemtoemtoemtemtemtemtemtemtemtemtemtemtemtemtemtemtemtemtemtemtemtemtemtemtemtemtemtemtemtemtemtemotereconceptate、その後、勾配内で測定する

どのようにReactがキーを使用してリスト項目を効率的に識別しますどのようにReactがキーを使用してリスト項目を効率的に識別しますApr 28, 2025 am 12:20 AM

RactuseSeSeSeSeSeSeSeSpiffictifideidifiedItemsbyprovidingastableidentitytoeeedelement.1)keysallowReactTotTotTotTotTotTotTotTotTotTotTotTotTotTotTotRACKESOUTRE-RENDERINGTHEENTERELIST.2)chookiniqueandstablekeys、avolididingArrayIndi​​ces.3)reforceAsificlySificlySiflovedobrovesiondanc

Reactにおける重要な問題のデバッグ:問題の特定と解決Reactにおける重要な問題のデバッグ:問題の特定と解決Apr 28, 2025 am 12:17 AM

KeysinReactarecrucialforoptimizingTherenderingProcessandDynamicListseffective.tospotandfixkey-relatedissues:1)adduniquekeystolistiTemstoavoidsissusisus、2)useuniqueidideididifiersfromdateadceSofofordiceys、3)

Reactの一方向データバインディング:予測可能なデータフローの確保Reactの一方向データバインディング:予測可能なデータフローの確保Apr 28, 2025 am 12:05 AM

Reactの一元配置データバインディングにより、データが親コンポーネントから子コンポーネントに流れることが保証されます。 1)データは単一に流れ、親コンポーネントの状態の変化は子コンポーネントに渡すことができますが、子コンポーネントは親コンポーネントの状態に直接影響することはできません。 2)この方法により、データフローの予測可能性が向上し、デバッグとテストが簡素化されます。 3)制御されたコンポーネントとコンテキストを使用することにより、一方向のデータストリームを維持しながら、ユーザーの相互作用とコンポーネント間通信を処理できます。

Reactコンポーネントでキーを選択して管理するためのベストプラクティスReactコンポーネントでキーを選択して管理するためのベストプラクティスApr 28, 2025 am 12:01 AM

keysinReactarecrucialforeffiencedomupdatessandRecOnciliation.1)選択可能でユニークな、そして類似のフルキーなど、Itemids.2)fornestedLists、useuniquekeysateachlevel.3)

ReactアプリケーションのuseState()を使用してパフォーマンスを最適化しますReactアプリケーションのuseState()を使用してパフォーマンスを最適化しますApr 27, 2025 am 12:22 AM

useState()uscrucialforoptimizingRectperformanceduetuitsoitsimpactonre-rendersandupdates.tooptimize:1)useusecallbacktomoize funtionsandpreventunnederireRenders.2)

コンテキストとuseState()を使用してコンポーネント間で状態を共有するコンテキストとuseState()を使用してコンポーネント間で状態を共有するApr 27, 2025 am 12:19 AM

コンテキストとユーザーを使用して、大規模なReactアプリケーションで州の管理を簡素化できるため、状態を共有します。 1)プロップドリルを減らす、2)より明確なコード、3)グローバルな状態を管理しやすい。ただし、パフォーマンスのオーバーヘッドと複雑さのデバッグに注意してください。コンテキストと最適化技術の合理的な使用は、アプリケーションの効率と保守性を向上させることができます。

Reactの仮想DOMアップデートに対する誤ったキーの影響Reactの仮想DOMアップデートに対する誤ったキーの影響Apr 27, 2025 am 12:19 AM

誤ったキーを使用すると、Reactアプリケーションでパフォーマンスの問題や予期しない動作を引き起こす可能性があります。 1)キーはリスト項目の一意の識別子であり、Virtual Domを効率的にReactの更新を支援します。 2)同じまたは非ユニークなキーを使用すると、リスト項目が再注文され、コンポーネント状態が失われます。 3)キーとして安定した一意の識別子を使用すると、パフォーマンスを最適化し、完全な再レンダリングを回避できます。 4)ESLINTなどのツールを使用して、キーの正しさを確認します。キーを適切に使用すると、効率的で信頼性の高い反応アプリケーションが保証されます。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター