Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

Javascriptで非同期呼び出しから応答を返す方法は?


javascriptで非同期呼び出しから応答を返す方法は複数あります。まず問題を理解しましょう。非同期で、しばらくするとデータを提供するfooという関数があるとします。これは2つの方法で実行できます。データを実行する準備ができたときに呼び出すコールバックを受け入れることもできます。または、約束を返すことができます。

たとえば、setTimeout関数はコールバックを受け入れ、一定時間後にそれを実行します。したがって、最初のアプローチを使用すると、setTimeoutで関数を渡すことができます。

function myFunc(cb) {
   setTimeout(() => cb(100), 1000);
}
myFunc((a) => console.log(a))

出力

100

これにより、1000ミリ秒後に実行されるコールバックを使用してsetTimeout関数が呼び出されます。その関数が実行されると、setTimeoutのコールバックから返された値を使用して渡されたcallback(cb)が呼び出されます。

Promisesの使用

これは、promiseを使用して行うこともできます。非同期関数をpromiseでラップし、このpromiseを関数の戻り値で解決します。 thenメソッドをチェーンし、それにコールバックを渡して、非同期関数から返された値を使用できます。

new Promise(resolve => setTimeout(() => resolve(100), 1000))
   .then(console.log)

出力

100

  1. JavaScript関数からオブジェクトを返す方法は?

    JavaScript関数からオブジェクトを返すには、 returnを使用します ステートメント、 this キーワード。 例 次のコードを実行して、JavaScipt関数からオブジェクトを返すことができます- <html>    <head>       <script>          var employee = {             empname: "David"

  2. JavaScriptの部外者関数呼び出しと結果を返す

    部外者の関数呼び出しにはreturnキーワードを使用します。以下はコードです- 例 var substractMethod = function () {    var firstValue =1000, thirdValue= 200;    var divideMethod = function (){       var secondValue =500;       console.log("The result of       divideMe