Javascript 如何从回调函数中获取值?
我需要在setTimeout函数中获取一个变量的值。我做了一些关于回调函数的研究。使用它,我确实获得了值,但我只能找出如何对其发出警报或控制台记录它。现在我需要把它赋给一个变量Javascript 如何从回调函数中获取值?,javascript,callback,settimeout,Javascript,Callback,Settimeout,我需要在setTimeout函数中获取一个变量的值。我做了一些关于回调函数的研究。使用它,我确实获得了值,但我只能找出如何对其发出警报或控制台记录它。现在我需要把它赋给一个变量 function x(callback){ setTimeout(function(){ length = text.length; callback(length); },100, text); } x(console.log.bind(console)); 此控制台正
function x(callback){
setTimeout(function(){
length = text.length;
callback(length);
},100, text);
}
x(console.log.bind(console));
此控制台正确记录长度。现在我怎样才能得到这个值,这样我就可以把它赋给一个变量
我希望将长度值指定给函数外部的length varibale,以便进一步使用它进行操作。我该怎么做呢?您可以使用回拨
function x(callback){
setTimeout(function(){
length = text.length;
callback(length);
},100, text);
}
let yourLength;
x(length => {
console.log(length);
yourLength = length
// Do something else
});
此外,由于变量是异步执行的,因此不应仅将长度分配给该变量。我添加了代码以将其分配给yourLength变量。但是,当调用回调后的代码被执行时,您无法确保回调allready返回并且变量具有值
更好、更易读的语言是使用或
而不是将长度作为参数传递。传递文本以回拨。在回调函数中。获取文本字段的长度
函数x设置参数回调
,因此不能将其用作函数
创建另一个函数回调并使用dif名称传递参数
例如:
a;x(函数(len){a=len})代码>可能重复的问题很简单,但这并不能回答问题。“现在,我如何只获取值,以便将其分配给变量?”
function x(callback){
setTimeout(function(){
length = text.length;
callback(length);
},100, text);
}
x(console.log.bind(console));
var text = "abc";
function x(text){
setTimeout(function(){
callback(text);
},100, text);
}
function callback(text){
console.log(text);
console.log(text.length);
}
x(text);