0

別の関数などを呼び出す関数があります。

function A(args,callback){    
// make ajax request
//  on response 
    B()    
}

function B(args){

// make ajax request
//  on response 
    C()
}

function C(args){

  // make ajax request
  //  on response 
    D()
}

私はそのような10のajax呼び出しを行っています。2つの質問...

  1. コールバック地獄とは何か説明してもらえますか? これはコールバック地獄ですか?
  2. 関数 D 内で callback() を呼び出すと、呼び出されますか。コールバックを引数として他の関数に渡していません。
4

3 に答える 3

3
  1. あなたが何をコールバック地獄と呼んでいるのかわかりませんが、それはスパゲッティコードの1つの地獄です。

「コールバック地獄」とは何ですか?
非同期のJavaScript、またはコールバックを使用するJavaScriptは、直感的に正しく理解するのが困難です。

ソース

2.いいえ、callback内部で定義されていないDため、エラーが発生します。

于 2012-11-14T20:32:26.470 に答える
1

内部では定義されていないためD()、呼び出す方法はありません。これが意味するのは、コールバックをcallback渡さない限り、変数を内部に持たないということです。コールバック地獄は、コールバックがお互いを呼び出す状況です-お互いに呼び出しと呼び出しを意味します。argumentscallbackD()A()B()B()A()

于 2012-11-14T20:32:14.767 に答える
0

関数参照を JavaScript のパラメーターとして渡し、この参照を使用して、いつでもどこでも関連する関数を呼び出すことができます。

詳細については、このリンクを参照してくださいhttp://recurial.com/programming/understanding-callback-functions-in-javascript/

于 2012-11-14T20:32:59.837 に答える