async function login(username, password) {
await $.ajax({
url: "/api/login",
type: "POST",
data: `{"username": "${username}", "password": "${password}"}`,
dataType: "text",
success: async function(response) {
var a = await JSON.parse(response)
console.log(a.token.access_token)
return a.token.access_token
},
error: function(response) {
return "false"
}
})
}
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdXRob3JpemVkIjp0cnVlLCJleHAiOjE2MTgzODIzNzUsInVzZXJuYW1lIjoic2sxMTIyIn0.e16nHpJUsNmMSAcPgaHkmJgwrnBkp4jB7KHe_ylAvKc // console.log() from login()
undefined // console.log() in another function
console.log(await login(questions[0].value, questions[2].value))
$.ajax()
的Promise语义,success
回调对返回值无效。返回
来自$.ajax()
调用的promise。login()
函数中绝对不需要异步
或await
。正确代码:
function login(username, password) {
return $.ajax({
url: "/api/login",
type: "POST",
data: {
username: username,
password: password
},
dataType: "text"
}).then(function (response) {
var data = JSON.parse(response);
return data.token.access_token;
}).fail(function (jqXhr, status, error) {
return false;
});
}
和
console.log(await login(questions[0].value, questions[2].value));
function login(username, password) {
return $.post("/api/login", {username: username, password: password})
.then((data) => data.token.access_token)
.fail((jqXhr, status, error) => false);
}
function login(username, password) {
try {
const data = await $.post("/api/login", {username: username, password: password});
return data.token.access_token;
} catch (err) {
return false;
}
}
问题内容: 当我警告jsonServerResponse函数返回的值时,尽管从process.php页面返回了JSON,但其值未定义。 我知道问题是异步请求完成之前发出的警报功能,但是我不确定如何解决此问题。任何建议都非常感激:) 问题答案: 好的,我是从其他帖子中弄清楚的。结果可以在成功回调中处理,也可以添加本身是回调函数的参数并将ajax请求的结果应用于回调。 还有gdoron,您所询问的那一
问题内容: 随着框架的发展,我决定将其拆分为文件,而不是将其保留在主设计文件中。但是,这样做不会返回任何值。 数据不为空-如果我警告js文件中的值,它们在那里! 功能: 1 .js文件中的功能(在执行之前包含) 因此,这是执行部分: 而且测试是空的…我已经尝试过不同的编写方式,但是我想我误解了js的可能性吗? 问题答案: 您不能这样做:由于调用是异步的,因此get_data函数无法返回ajax调用
问题内容: 随着框架的发展,我决定将其拆分为文件,而不是将其保留在主设计文件中。但是通过这样做,函数的返回不会返回任何值。 数据不为空-如果我警告js文件中的值,它们在那里! 功能: 1 .js文件中的函数(在执行之前包含) 因此,这是执行部分: 并且测试是空的…我已经尝试了不同的编写方式,但是我想我误解了js的可能性吗? 问题答案: 您不能这样做:由于调用是异步的,因此get_data函数无法返
问题内容: 我有一个计算税金的函数。 我不明白为什么它不能停止递归。 问题答案: 在您的职能部门中: 您没有从函数或设置中返回值。当您不返回任何内容时,返回值为。 也许,您想要这样:
我真的需要温习一下我的异步等待和promise。我想要一些建议。 我正在对firebase firestore进行异步函数调用。函数应根据单个输入参数返回字符串。 该功能适用于1-1用户聊天。该功能是创建聊天/查找现有聊天,并返回其ID。 现在,我得到的作为返回值的和不知道为什么。除了返回之外,该函数还能正常工作。 我有两个功能。一个是React类组件生命周期方法,另一个是我的firebase异步
问题内容: 我在这段代码上遇到问题;返回值返回为“ undefined”。有什么问题? 较新的代码: 我怎么称呼它: 问题答案: 根据您的修改进行更新 解决这些问题应可使代码正常工作。 旧答案 您正在以 同步 模式调用XMLHttpRequest ,这意味着它将 阻塞 脚本,直到请求完成为止,因为您是在阻塞调用之后(即请求已经完成之后)分配回调,因此您的代码永远不会收到通知。 由于同步模式会阻止脚