异步函数中的变量范围

meg*_*gas 2 javascript

我已经构建了函数来返回一些变量.但我的函数异步使用另一个函数.

function getVariable() {
  var myVariable;
  asyncronousFunction(function(...){

    myVariable = ...

  });
  return myVariable;
}
Run Code Online (Sandbox Code Playgroud)

问题是myVariable外部和内部asyncronousFunction是不同的变量.所以我无法myVariable从异步函数赋值.

如何解决这个范围问题?谢谢.

dec*_*eze 5

它们是相同的变量,但您不能returngetVariable函数中同步调用异步函数.值myVariable将在稍后某个未指定的时间点异步更新.但是你的函数现在正在返回值.这不起作用.

这意味着你的getVariable函数也是异步的,这意味着你必须以这种方式设计它.例如,它可以接受回调,就像asyncronousFunction那样.