私は別の関数で再実行する必要がある変数を持つFORループを実行しようとしていますが、最初の関数からそれらをコーディングする必要があります しかし、それらは「未定義」です。関数内にグローバル変数を渡すことができません
変数がledTypes2以外のcollectionChecking関数内でローカルである場合、handleResponse2の関数が彼を呼び出そうとしているとき、hostIndx2の変数は未定義です。この関数は、HTMLページ内のledTypes2のメソッドからレスポンスをアイコンとしてレンダリングする必要があります。
var fetch = require('node-fetch');
var ledTypes = {
green: "<img id='logo' src='green.png' height='30' width='30'>",
red: "<img id='logo' src='red.png' height='30' width='30'>",
yellow: "<img id='logo' src='yellow.png' height='30' width='30'>"
};
var hosts2 = ['http://host1.com','host2.com','host3.com','host4.com'];
var hostIndx2 = 0;
var lengthVal = hosts2.length;
var token = '1213232431';
function collectionChecking() {
console.log("im inside the func" + hostIndx2 + "---" + lengthVal);
for (; hostIndx2 < lengthVal; hostIndx2++) {
console.log(hostIndx2);
let url = hosts2[hostIndx2];
// sendReq();
fetch(url , {method: 'GET', headers:{"X-AUTH-TOKEN": token, "Content-Type": "text/plain"}, timeout: 30000}
).then(function (res, hostIndx2) {
console.log(res.status, hostIndx2);
handleLedResponse2(res, hostIndx2);
});
}
}
function handleLedResponse2(res, hostIndx2) {
var curSpan = document.getElementById('col_host_' + hostIndx2);
console.log("IM HERE" + res.status + "---" + hostIndx2);
if (res.status === 200 || res.status === 204) {
curSpan.innerHTML = ledTypes.green;
} else if (res.status === 500 || res.status === 404) {
curSpan.innerHTML = ledTypes.red;
} else if (res.status === 300 || res.status === 301 || res.status === 302) {
curSpan.innerHTML = ledTypes.yellow;
}
}
問題の詳細はこちらをご覧ください。どの正確な変数が未定義で、どのコード行でですか?そして、「最初の機能からそれらをコード化する必要がある」とはどういう意味ですか?あなたが持っている問題と達成しようとしていることを正確に特定してください。 – jfriend00
handleResponse2の関数が彼を呼び出そうとしているとき、hostIndx2の変数は未定義です。この関数は、HTMLページ内のledTypes2のメソッドからレスポンスをアイコンとしてレンダリングする必要があります。 –