Javascript 如何从回调函数中获取值?

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)); 此控制台正

我需要在setTimeout函数中获取一个变量的值。我做了一些关于回调函数的研究。使用它,我确实获得了值,但我只能找出如何对其发出警报或控制台记录它。现在我需要把它赋给一个变量

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);