如何在回调之外的回调函数中访问值?

时间:2011-11-19 15:52:17

标签: javascript jquery

我调用一个带回调函数参数的函数。

我想将给回调的值推送到一个新数组,以便我可以在其他地方使用它。问题是,无论我做什么,阵列都会保持空白。

var testarray = new Array();

Getfirstpictures(id, function(myarray) {
    testarray.push(myarray[0]);
});

alert(testarray);

2 个答案:

答案 0 :(得分:1)

由于它使用回调,因此Getfirstpictures是一个异步函数是一个非常安全的选择。

在发生回调的任何触发事件之前,您正在调用alert

您需要等到触发发生后(通常将警告置于回调功能中。

答案 1 :(得分:0)

使用你的回调:

    Getfirstpictures(id, function(myarray)
    {
        alert(myarray);
    });

该回叫不会立即执行。它由您的Getfirpictures方法执行。


编辑:

变化:

var testarray = new Array();

Getfirstpictures(id, function(myarray) {
    testarray.push(myarray[0]);
});

alert(testarray);

为:

Getfirstpictures(id, function(myarray) {
     alert(myarray);
});

它会起作用。所以你也可以这样做:

Getfirstpictures(id, function(myarray) {
     doSomething(myarray);
});

function doSomething(arr) {
    for (var i = 0; i < arr.length; i++)
        alert(arr[i]); // or add elements to the DOM etc etc
}