У меня проблема с моим кодом nodejs. Я пытаюсь использовать эту функцию для сбора некоторой информации с некоторых серверов.nodeJs обратные вызовы обмена переменными?
Справочная информация: У меня есть сервер, который только контролирует и контролирует материал и некоторые другие, которые предназначены для работы. я называю функции в моем коде, как этот
// 1 callback
cmd.execute('getInformationScript ' + controlToken, function(queryResult){
exctractInfo(queryResult, function(result){
setcNodes(result)
});
});
//2 callback
cmd.execute('getInformationScript ' + imageToken, function(queryResult){
exctractInfo(queryResult, function(result){
setiNodes(result)
});
});
function exctractInfo(jsonString, callbackSucc){
var callbackArray = [];
var callbackResultArray = []
if(jsonString != null){
imageNodeArray = JSON.parse(jsonString);
for(imageNodes in imageNodeArray){
for(imageDetail in imageNodeArray[imageNodes]){
if ('name' in imageNodeArray[imageNodes][imageDetail]){
var name = imageNodeArray[imageNodes][imageDetail]['name'];
callbackArray.push(imageNodeArray[imageNodes][imageDetail])
// variable problem
cmd.execute('getInfomationFromServer.sh '+name+'', function(shellResult){
callbackResultArray.push(JSON.parse(shellResult));
if(callbackResultArray.length == callbackArray.length){
imageNodeArray[imageNodes] = mapCallbacks(callbackArray,callbackResultArray);
callbackSucc(imageNodeArray);
imageNodeArray = []
}
});
}
}
}
}
}
После некоторых отладки я могу видеть, что мои Массивы, где я хранить свои функции обратного вызова, чтобы посчитать их, кажется, будут перезаписаны. Так что теперь действительно глупый вопрос ... почему? Я стараюсь, чтобы каждая функция обратного вызова имела свою собственную область, поэтому почему они переписывают друг друга.
Я действительно надеюсь, что вы можете мне помочь, это сводит меня с ума.
Большое спасибо. Я действительно не видел эту маленькую ошибку, но теперь все работает как шарм. – BitKoch