Hallo also ich habe gerade diese Funktion gemacht und ich versuche, die Daten zurück zu geben, aber aus irgendeinem Grund gibt es nicht die Daten zurück, aber die Funktion wird aufgerufen, als ich versucht, es zu protokollieren die Funktion wird ausgeführt, es funktioniert, aber es funktioniert nur die Daten zurück, wenn ich die FunktionNode js Rückgabefunktion gibt keine Daten zurück
verwenden möchten Wie Sie verwende ich die Funktion versucht, die zurückgegebenen Daten setzen in einem Array
Sie sehen können Vielen alle.
a.push(methods.UserInfo(id));
Hier ist der gesamte Code I
methods.UserDatas = ((client, json)=> {
let a = [];
if (json.Params.length > 0) {
json.Params.forEach((id)=>{
if (id) {
a.push(methods.UserInfo(id));
}
});
let cmd = {
'Cmd': 'GetUserInfo',
'userinfo': a
};
packet.send(client, JSON.stringify(cmd));
}
});
methods.UserInfo = ((id)=> {
sql.query('SELECT * FROM users WHERE ?',[{id:id}], (err, row)=>{
if (err) {
throw err;
} else {
if (row.length > 0) {
let playerData = {};
playerData.userid = row[0].id;
playerData.strGender = row[0].Gender;
playerData.Username = row[0].Username;
let items = {};
sql.query('SELECT * FROM users_items WHERE ? AND equipped=1',[{userid:id}],(err,rows) => {
if (err) {
throw err;
} else {
if (rows.length > 0) {
for (var i =0; i< rows.length; i++) {
let item = DBData.items.get(parseInt(rows[i].itemid));
items[rows[i].equipment] = {
'ItemID': item.id,
'File':item.File,
};
}
}
playerData["equipment"] = items;
return playerData;
}
});
}
}
});
});
'a.push (methods.RetrieveUserInfo (id)) 'ist in Ihrem Code implementiert, aber die Methode heißt' UserInfo'. Ist es nur ein Tippfehler? –
Ich bearbeitet es getippt, dass durch Zufall seine UserInfo (ID) – Wexo
Mögliche Duplikat von [Wie gebe ich die Antwort von einem asynchronen Aufruf?] (Http://stackoverflow.com/questions/14220321/how-do-i-return -die-Antwort-von-einem-asynchronen Anruf) –