NodeJS は非常に強力なサーバーサイド JavaScript ランタイム環境であり、JavaScript を使用してバックエンド アプリケーションを開発できるため、フロントエンド開発者にとって NodeJS は非常に便利なスキルになります。
NodeJS を使用してアプリケーションを開発する場合、通常は同じインターフェイスで異なる関数を使用する必要があります。 NodeJS にはこれを実現するためのさまざまな方法が用意されており、そのいくつかを以下に紹介します。
コールバック関数は、同じインターフェイス内の異なる関数への呼び出しを実装するために NodeJS で最も一般的に使用されるメソッドです。コールバック関数は実際には別の関数のパラメータとして渡される関数であり、最初の関数が完了した後に 2 番目の関数が呼び出されます。
次は、同じインターフェイスで異なる関数を使用する方法を示す簡単な例です:
function firstFunction(callback) { setTimeout(function () { console.log("执行第一个函数"); callback(); }, 1000); } function secondFunction() { console.log("执行第二个函数"); } firstFunction(secondFunction);
この例では、firstFunction 関数はパラメーターとしてコールバック関数を受け入れます。最初の関数が完了すると、2 番目の関数が呼び出されます。
Promise は、非同期プログラミングの問題を解決するテクノロジであり、同じインターフェイスで異なる関数を実行するために使用できます。 Promise を使用すると、非同期操作をよりエレガントに処理できるようになり、非同期操作をオブジェクトにパッケージ化し、チェーン呼び出しによる非同期操作の順次実行を実装できます。
次は Promise の使用例です:
function firstFunction() { return new Promise(function (resolve, reject) { setTimeout(function () { console.log("执行第一个函数"); resolve(); }, 1000); }); } function secondFunction() { console.log("执行第二个函数"); } firstFunction().then(secondFunction);
この例では、firstFunction は Promise オブジェクトを返します。Promise オブジェクトでは、非同期操作を関数にラップしています。最初の関数が完了すると、resolve メソッドが呼び出され、非同期操作が完了したことが示されます。次に、2 番目の関数で then メソッドを呼び出し、チェーン呼び出しによる非同期操作の順次実行を実装しました。
async/await は ES2017 で導入された新機能で、非同期オペレーション コードを同期コードのように見せることができます。 async/await を使用すると、同じインターフェイスでさまざまな関数をより簡単に実装できます。
次は、async/await の使用例です:
function firstFunction() { return new Promise(function (resolve, reject) { setTimeout(function () { console.log("执行第一个函数"); resolve(); }, 1000); }); } function secondFunction() { console.log("执行第二个函数"); } async function run() { await firstFunction(); secondFunction(); } run();
この例では、run という名前の非同期関数を定義します。この関数は、async キーワードを使用して、それが非同期関数であることを宣言します。次に、関数内で await キーワードを使用して、非同期関数が完了するのを待ちます。この例では、最初の関数が完了するのを待ってから 2 番目の関数を実行します。
概要
コールバック関数 Promise と async/await を介して、同じインターフェイスに異なる関数を実装できます。それぞれの方法には独自の長所と短所があり、実際の状況に応じていずれかを選択できます。
コールバック関数は非常に一般的で、非同期操作の処理に役立ちますが、複数のネストされたコールバック関数を使用すると、コードの保守が非常に困難になります。 Promise はコールバック地獄の問題を解決するのに役立ちますが、初心者には理解するのが難しいかもしれません。 async/await は最新の非同期ソリューションで、これを使用すると、非同期コードを同期コードのように見せることができます。
以上がnodejsは同じインターフェイスですが機能が異なりますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。