2016-05-11 2 views
0

JavaScriptコールバックは何度も繰り返し説明されていますが、インナーコールバック関数から値を保存する方法はありません。JavaScriptインナーコールバック関数からの値の保存

request.get('http://google.com', function(error, response, body){ 
    var $ = cheerio.load(body); 
    // Process HTML here 
    // How do I save the result from processing with a callback 
} 

// Or 
var parse = function(error, response, body){ 
    // Process HTML here 
    // Assign result to a variable or pass a callback to this function 
}; 
request.get('http://google.com', parse); 

私は処理する複数のURLを持っていますが、後でその情報をまとめたオブジェクトが1つあります。

保存するとは、変数に代入するか、ファイルに保存することです。

+0

どのように保存しますか?どこに保存?後でそれで何をしたいですか? 「後で」はいつコールバックの中で要約を行うだけですか? – Bergi

+0

あなたは結果を返すことがあります – Redu

+1

別のコールバックを使用 –

答えて

0

非同期操作が完了すると(2番目のスレッドのように)コールバックが呼び出されることに注意してください。つまり、request.getの後のコードがすでに実行されていて、returnを使用して値を返すことはできません。

解決策は、コールバック内のすべてのプロセスを作成するか、他の機能を持たせることです。値を返す代わりに、next_function(the_return_value)(そのようなもの)を作成して呼び出してください。

+0

処理を行う別の関数を作成し、それをコールバックとして渡したとしたら、コールバックを外部コールバック関数にどのように渡すのですか? –

関連する問題