【问题标题】:Is there a way to call a Return for a parent function from a child function in javascript?有没有办法从javascript中的子函数调用父函数的返回?
【发布时间】:2011-01-21 06:31:58
【问题描述】:

我遇到了一个非常特殊的案例。我想return 一些数据——通过 ajax 下载的数据。到目前为止,异步和同步模式无法及时将数据发送到return。我是否可以从父函数的子函数调用return,或者timeOut 可以解决问题吗?我想不出另一种方法,但必须返回数据。

【问题讨论】:

标签: javascript ajax return


【解决方案1】:

你可以提供一个回调函数:

function parentfunction(callback) {
    callback(getAjax());
}

function childfunction() {
    parentfunction(function(ajaxData) {
        //Do stuff with data
    });
}

【讨论】:

    【解决方案2】:

    你的问题的答案是否定的。

    在异步请求中,函数必须在结果可用之前返回。为了解决这个问题,使用了回调模式——当调用这样一个函数时,你不期望返回,而是为它提供一个回调——一个函数在结果可用时被调用。

    这是一个简单的例子:

    var someValue;
    fetchValueFrom('http://example.com/some/url/with/value', function(val) { 
      someValue = val; 
      doSomethingElseWith(someValue);
    });
    

    在这里,我们创建一个函数并将其作为第二个参数传递给fetchValueFrom 调用。一旦值可用,将调用此函数,并设置变量并调用另一个函数以继续执行。

    【讨论】:

      【解决方案3】:

      只需将false 作为第三个参数传递给XMLHttpRequest.open。意思是“同步运行这个查询”。

      See the reference为你自己。

      【讨论】:

      • 我希望$.ajaxSetup({ async:false }) 对我有用,它会解决我所有的问题,但我的代码似乎忽略了它?
      • “从 Gecko 30.0(Firefox 30.0 / Thunderbird 30.0 / SeaMonkey 2.27)开始,由于对用户体验的负面影响,主线程上的同步请求已被弃用。”
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-09
      • 1970-01-01
      • 1970-01-01
      • 2019-02-01
      • 2010-11-16
      • 2020-12-24
      相关资源
      最近更新 更多