【问题标题】:Pass output as input argument for the callback [duplicate]将输出作为回调的输入参数传递[重复]
【发布时间】:2017-02-15 12:32:17
【问题描述】:

我有一种情况,我需要从 ajax 调用中获取一个值,然后将该值传递给一个回调函数。就像这样:

function getValue(callback){
    var val = getfromajax();
    //need to return value and then execute the callback here
    return val;
    callback();
}

var myval = getValue(function(){
    alert(myvalue)
})

在上面的函数 showValue 示例中,我需要调用 getValue 并使用返回的值并将其传递给回调函数(它会提醒它)。

有没有办法做到这一点?

【问题讨论】:

  • getfromajax() 是不是顾名思义是异步
  • 是的,实际上是 ajax() 函数。
  • 您最好阅读:How do I return the response from an asynchronous call?getfromajax() 已经有问题了
  • 这不是返回响应,而是将其传递给回调函数。请仔细阅读问题。
  • 但是val不可能是ajax返回的值,因为ajax是异步的。显示getfromajax的代码

标签: javascript callback


【解决方案1】:

你只需将它作为参数传递给回调函数

function getValue(callback){
    var val = getfromajax();

    callback(val);
}

var myval = getValue(function(myvalue){
    alert(myvalue)
});

请注意,如果 getfromajax 是异步的,这将不起作用。

【讨论】:

  • 所以 getValue 必须返回语句,“var myval”实际上是做什么的?
  • 其实就是这样,谢谢!顺便说一句,getfromajax 是 $.ajax() 调用的别名,我在 .done() 范围内分配 val。
猜你喜欢
  • 2016-07-03
  • 2011-10-13
  • 2015-12-09
  • 1970-01-01
  • 1970-01-01
  • 2013-08-22
  • 2020-12-23
  • 1970-01-01
  • 2015-01-11
相关资源
最近更新 更多