gpt4 book ai didi

javascript - 在 Javascript 中正确链接 ajax 请求

转载 作者:行者123 更新时间:2023-12-03 00:05:08 26 4
gpt4 key购买 nike

嘿,大家好,我遇到了一个问题,但找不到解决方案。我正在尝试链接两个休息调用函数,并在它们之后使用一个使用从它们返回的对象的函数。由于某种原因,有些东西不起作用,我认为这与我编写的语法有关。我想了解为什么 我的代码:

<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>Document</title>
</head>
<body>
<script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.3.1.min.js"></script>

<script>
var users = [];
var user = null;

function restCallA() {
$.ajax({
url: "https://reqres.in/api/users?page=2",
type: "GET",
success: function(response) {
users = response.data;
}
});
}
function restCallB() {
$.ajax({
url: "https://reqres.in/api/users/2",
type: "GET",
success: function(response) {
user = response.data;
}
});
}
function myFun() {
users.push(user);
console.log(users);
}
restCallA()
.then(restCallB())
.then(myFun());
</script>
</body>
</html>

错误:

test.html:38 Uncaught TypeError: Cannot read property 'then' of undefined

最佳答案

restCallArestCallB 都必须返回每个 $.ajax 调用的结果,然后您可以使用 将它们链接起来然后()

另一个问题是您调用 restCallB 和 myFun,而不是将函数作为参数传递:

restCallA()
.then(restCallB())
.then(myFun());

应该是:

restCallA()
.then(restCallB)
.then(myFun);

关于javascript - 在 Javascript 中正确链接 ajax 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54992620/

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