相关疑难解决方法(0)

如何从异步调用返回响应?

我有一个foo发出Ajax请求的函数.我怎样才能从中回复foo?

我尝试从success回调中返回值,并将响应分配给函数内部的局部变量并返回该变量,但这些方法都没有实际返回响应.

function foo() {
    var result;

    $.ajax({
        url: '...',
        success: function(response) {
            result = response;
            // return response; // <- I tried that one as well
        }
    });

    return result;
}

var result = foo(); // It always ends up being `undefined`.
Run Code Online (Sandbox Code Playgroud)

javascript ajax jquery asynchronous xmlhttprequest

5208
推荐指数
38
解决办法
134万
查看次数

处理函数中的异步调用(Firebase)

好几次,我遇到了使用Firebase的同步和异步功能的问题.我的问题通常是我需要在我编写的函数中进行异步Firebase调用.举个简单的例子,假设我需要计算和显示一个对象的速度,我的Firebase存储距离和时间:

function calcVelocity() {
    var distance, time, velocity;

    firebaseRef.once('value', function(snapshot) {
        distance = snapshot.val().distance;
        time = snapshot.val().time;

        velocity = distance / time;
    });
    return velocity;
}

$("#velocity").html(calcVelocity());
Run Code Online (Sandbox Code Playgroud)

当然,上面的代码不起作用,因为firebaseRef.once()是异步调用,所以velocity当我们到达时还没有设置return velocity;.如果我们将回调函数置于return内部.on(),则根本不会返回任何内容.

一种解决方案是使我的calcVelocity()函数也异步.

另一种解决方案是存储同步读取但从Firebase异步更新的Firebase缓存版本.

这些解决方案中的一个比另一个好吗?还有更好的解决方案吗?

javascript ajax asynchronous firebase

10
推荐指数
3
解决办法
1万
查看次数

推迟退货声明

可能重复:
使用jQuery的JavaScript异步返回值/赋值

我需要一个带构造函数的图表原型,所以我写了这个:

function Chart(file) {
  var chart = undefined

  $.getJSON(file, function(data) {

    chart = {
      categories: data.keys
      series: [{
          name: 'first',
          data: data.first
        }, {
          name: 'second',
          data: data.second
      }]
    }

  });

  return chart
}
Run Code Online (Sandbox Code Playgroud)

然后我意识到,由于JaavScript的同步性,它会返回undefined.我应该如何表达退货声明Chart?

javascript jquery asynchronous return

5
推荐指数
1
解决办法
138
查看次数

如何在javascript函数中返回json对象?

我有这个功能

function getTags(level){
    $.getJSON("php/get-tags.php", { "parent": level }, function(json) {
        return json;
    });
}
Run Code Online (Sandbox Code Playgroud)

我把这个函数称为

$(function(){
    var tags = getTags('0');  
});
Run Code Online (Sandbox Code Playgroud)

问题是,在函数getTags()中返回json就像

{"tags":["Mathematics","Science","Arts","Engineering","Law","Design"]}

但是,在var tags = getTags('0')捕获返回值时,它会得到一个undefined值.

我返回值的方式不正确吗?

javascript jquery json function

4
推荐指数
1
解决办法
3万
查看次数

使用Javascript中的alert()处理一个奇怪的问题

我在JavaScript中有以下方法:

function getData(){
    var result;

    $.getJSON("app/data/ptl", function (data) {
        if (data == null) {
            return false;
        }

        var x_data = new Array();
        var y_data = new Array();

        $.each(data, function(index, value) {
            x_data.push(index);
            y_data.push(value);
        });

        result = [months_data,value_data];

    });

    alert('');
    return result;
}
Run Code Online (Sandbox Code Playgroud)

调用此方法时,将检索确切的数据.但是当我删除alert('')数据时没有收到.有谁知道这个问题的合理解释?

javascript

1
推荐指数
1
解决办法
99
查看次数