ノードアプリケーションでグローバル変数を更新できません。誰かが自分のコードを見て、何がうまくいかないのかを教えてくれますか? HTTP応答オブジェクトに「次」が定義されていない限り、実行するdowhileループを定義しました。ループの中では、物事は期待どおりに実行されており、new_json.nextは定義されていますが、new_json.nextはそこで定義されていないため、while条件はエラーを返しています。私はJavascriptでちょっと新しいので、どういうわけか私の可変スコープはオフですが、他の質問に基づいて正しく動作する方法を理解することはできません。Javascriptでグローバル変数を更新できません
function make_pagination_request(json, create_response_data) {
var new_json={};
do {
var options = {
host: slug + '.nationbuilder.com', //should be replaced to be site-agnostic
path: json.next,
method: "GET",
json: true,
headers: {
"content-type": "application/json",
"accept": "application/json"
},
}
var req = https.get(options, req_callback);
function req_callback(response) {
response.on('data', function(chunk) {
str += chunk;
});
response.on('end', function(new_json) {
new_json=JSON.parse(str);
new_results = new_json.results
results= results.concat(new_results);
console.log("combinedlength: " + results.length)
console.log(new_json.next);
});
}
} while (new_json.next.includes("api"));
私はそのようなものだったはずでした。これは私が理解し始めたばかりのものであり、他のいくつかの問題の根源になっています。私は、単にmake_pagination_requestという関数をそれ自身の終わりから呼び出すことになりました。 –
Javascriptコードとその言語に含まれる同期構造の非同期性は、多くのプログラマにとって大きな問題の原因となっています。あなたのコメントでは、同じ関数を再度呼び出すことによって問題を解決することができます。それが機能しても、私はあなたがスタックオーバーフローの問題に到達する関数が何度も呼び出されるので、より良い解を研究することをお勧めします。 – yeiniel
私はすでに冗談であるスタックオーバーフローの問題 –