我需要在setTimeout函数中获取变量的值。做一些关于回调函数的研究。使用它,我确实获得了价值,但是我只能弄清楚如何提醒它或控制台记录它。现在,我需要将其分配给变量。
function x(callback){
setTimeout(function(){
length = text.length;
callback(length);
},100, text);
}
x(console.log.bind(console));
此控制台正确记录长度。现在如何获取值,以便将其分配给变量?
我希望将长度值分配给函数外部的长度变量,以便可以对其进行进一步操作。我将如何去做?
答案 0 :(得分:0)
function x(callback){
setTimeout(function(){
length = text.length;
callback(length);
},100, text);
}
x(console.log.bind(console));
代替传递长度作为参数。传递文字以回电。并在回调函数中。获取文本字段的长度。
功能x设置参数callback
,因此您不能将其用作功能
创建另一个函数回调并使用dif名称
例如:
var text = "abc";
function x(text){
setTimeout(function(){
callback(text);
},100, text);
}
function callback(text){
console.log(text);
console.log(text.length);
}
x(text);
答案 1 :(得分:-1)
您可以使用回调。
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变量的代码。但是,当执行了调用回调后的代码时,您无法确定回调已全部返回并且变量具有值。
一个更好,更易读的解决方案是使用promises或async methods and await