Javascript 变量';s值未更改
我有以下代码:Javascript 变量';s值未更改,javascript,Javascript,我有以下代码: function loadCharacter(characterName) { var characterObject = {"Tri":"t"}; socket.emit("loadCharacter", { "name" : characterName },function(dataFromServer) { console.log(dataFromServer); characterObject = dataFromServ
function loadCharacter(characterName) {
var characterObject = {"Tri":"t"};
socket.emit("loadCharacter", { "name" : characterName },function(dataFromServer) {
console.log(dataFromServer);
characterObject = dataFromServer;
});
return characterObject;
};
var localCharacter = loadCharacter("Gabriella");
console.log(localCharacter);
console.log(dataFromServer)
按原样显示来自服务器的数据,但console.log(localCharacter)
显示原始值,{“Tri”:“t”}
,而不是dataFromServer
的值
如何更改characterObject的值并返回它?这是因为
characterObject = dataFromServer;
…被追赶
return characterObject;
习惯使用回调异步JS。到处都是。不再有返回值,只有回调。回调函数是
函数(dataFromServer)
因此loadCharacter()
没有返回值。您的函数在回调更改之前返回值