【发布时间】:2017-04-28 22:32:07
【问题描述】:
我是 JavaScript 新手,理解回调函数有困难。
我在下面有一个函数,它返回一个数组,然后是另一个调用第一个函数的函数。问题是,第二个函数中的数组总是未定义的,即使在第一个函数中返回一个对象数组。
function getItems() {
$.get(url,
function(data) {
var obj = $.parseJSON(data);
var itemArr = $.map(obj, function(ele) { return ele; })
return itemArr;
});
}
function alertTest() {
var items = getItems();
alert(items);
}
我知道第一个函数是异步的,因此第二个函数中的警报在返回的数组之前被调用,这导致第二个函数警报一个未定义的对象。
我知道有很多关于此的文档,但我无法理解它是如何工作的。有人可以告诉我我需要做的更改,以便在调用 getItems 函数后 alertTest 函数返回填充的数组吗?
提前致谢!
【问题讨论】:
-
如果第一个函数也返回一个数组,那么第二个函数应该返回一个数组,如果你需要让它工作,你可以尝试用“alert(getItems) 更改函数 alertTest() 中的行())" 它将按照您想象的方式工作。
标签: javascript jquery arrays function callback