0

私はJavascriptが初めてで、以下のコードについて何時間も混乱しています。結果の値を htmlContent に代入できない理由を知りたいです。ありがとう!

var htmlContent = fs.readFileSync(program.file);

restler.get('http://google.com').on('complete', function(result) {
    if (result instanceof Error) {
        util.puts('Error: ' + result.message);
    } else {
       htmlContent = result;
    }
});
console.log(htmlContent);
4

3 に答える 3

2

ここでの問題は、 で始まる行が のrestler.get前に始まるconsole.logことですが、必ずしもその前に終了するとは限りません。

通話のconsole.log中に入れてください。restler.get

于 2013-07-26T03:26:24.420 に答える
0

ここで、内部の関数.on()は非同期的に呼び出されます (簡単に言えば、「完了」イベントが発生したときに実行されます)。console.log(htmlContent)通常の関数呼び出しを使用しているため、この方法で関数内に値を設定することはできませんhtmlContent

result他の関数で値を使用する場合は、この値を次の関数に渡す必要があります。これがうまくいくことを願っています。

于 2013-07-26T04:35:00.087 に答える