无法修改javascript回调中的值

无法修改javascript回调中的值,javascript,node.js,callback,redis,asynccallback,Javascript,Node.js,Callback,Redis,Asynccallback,我无法在回调中修改outputString变量的值 var outputString; client.get(key,function(err,value){ outputString = "key="+key+" value="+value ; console.log(outputString); }) console.log(outputSt

我无法在回调中修改outputString变量的值

var outputString;

    client.get(key,function(err,value){

                        outputString = "key="+key+" value="+value ;
                        console.log(outputString);

                    })

console.log(outputString);

当我打印outputString的值时,它会显示“undefined”

client.get()立即返回,因此在调用最后一个console.log()时,outputString尚未设置。回调函数直到稍后才被调用。

是否定义了
key
value
是否返回某些内容?如果(错误)值得阅读,请检查
。这是Javascript和异步操作最常见的混淆点之一。@jfriend00好的。所以控件会立即返回到console.log,所以我看不到变量的修改值。所以我不可能实现我想要做的事情。我的意思是在变量更新之前访问它。但我想如果我放一个计时器的话,这会起作用的。在打印变量之前,我等待了一段时间。如果你阅读了问题的答案,你的问题被标记为重复,它会给你几个选择。计时器是一个错误的选择,因为它假定它知道异步操作将需要多长时间。请阅读dup问题的答案。这一切都写在那里了。异步操作需要异步编码技术。不能将同步编码技术用于异步操作。如果你要用Javascript编写代码,你必须习惯并学会如何正确地编写。@jfriend00是的。再次感谢您的投入。不。这就是回调的目的。我正在回调中设置变量的值,以便在控件从客户端出来之前对其进行修改。get methodOkay。我认为你是对的。让我再做一些分析,然后我将标出答案。谢谢