Ich versuche, eine FOR-Schleife mit Variablen auszuführen, die in einer anderen Funktion erneut ausgeführt werden müssen, und ich muss sie aus der ersten Funktion Code aber die Funktion empfangen sie als "undefiniert".Kann globale Variablen innerhalb einer Funktion nicht übergeben
Wenn die Variablen innerhalb der collectionChecking-Funktion mit Ausnahme von ledTypes2 lokal sind, ist die Variable von hostIndx2 undefiniert, wenn die Funktion von handleResponse2 versucht, ihn aufzurufen. Diese Funktion sollte die Antwort als ein Symbol aus der Methode von ledTypes2 innerhalb der HTML-Seite darstellen.
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;
}
}
Bitte präzisieren Sie das Problem, das Sie haben. Welche genauen Variablen sind nicht definiert und auf welcher Codezeile? Und was bedeutet "sie aus der ersten Funktion heraus kodieren"? Bitte präzisieren Sie genau, welches Problem Sie haben und was Sie erreichen möchten. – jfriend00
Danke, die Variable von HostIndx2 ist nicht definiert, wenn die Funktion von handleResponse2 versucht, ihn aufzurufen. Diese Funktion sollte die Antwort als ein Symbol aus der Methode von ledTypes2 innerhalb der HTML-Seite darstellen. –