gpt4 book ai didi

javascript - 很难理解回调函数

转载 作者:行者123 更新时间:2023-12-03 04:26:28 24 4
gpt4 key购买 nike

我是 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);
}

我知道第一个函数是异步的,因此第二个函数中的警报在返回的数组之前被调用,这导致第二个函数警告 undefined object 。

我知道有很多关于此的文档,但我无法理解它是如何工作的。有人可以告诉我需要进行哪些更改,以便alertTest 函数在调用getItems 函数后返回填充的数组吗?

提前致谢!

最佳答案

$.get 是一个async 函数。这意味着当 被击中并且响应在 内部返回时,将调用callback函数。

现在return itemArr实际上是由回调函数返回的并且getItems() 实际上并不返回任何内容,因此它始终是未定义的。

为了让您的代码正常工作,

  function getItems() {
$.get(url,
function(data) {
var obj = $.parseJSON(data);
var itemArr = $.map(obj, function(ele) { return ele; })
alertTest(itemArr);
return itemArr;
});
}

这将调用alertTest函数。

关于javascript - 很难理解回调函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43689738/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com