Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 变量';s值未更改_Javascript - Fatal编程技术网

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()
没有返回值。您的函数在回调更改之前返回值