【发布时间】:2021-08-02 12:12:32
【问题描述】:
这是我的源代码。我正在使用sweetalert2.all.min.js 来使用swal 弹出窗口。现在我有一个问题,如何在then 语句中访问 API 端点的返回值?我也在源代码中标记了它。
这是来源:
Swal.fire({
title: 'Welcome',
text: "Enter Username and Password",
html:
'<input id="username_input" class="swal2-input" placeholder="Enter Username">',
input: 'password',
inputPlaceholder: 'Enter Password',
inputAttributes: {
autocapitalize: 'off'
},
showCancelButton: false,
confirmButtonText: 'Login',
showLoaderOnConfirm: true,
preConfirm: (passwordEntered) => {
var usernameEntered = document.getElementById('username_input').value;
return fetch("...my_endpoint.../checkusername/" + usernameEntered + "/" + passwordEntered)
.then(response => {
response.text().then((val) => {
return val // **: I need to get this value in * place
});
})
.catch(error => {
return "ERROR";
})
},
allowOutsideClick: () => {
!Swal.isLoading()
}
}).then((result) => {
alert(result.value); // *: I need to access the value from **
})
所以,当我记录结果的值时,我会得到 passwordEntered 变量的值。
【问题讨论】:
-
可以在
response.text()之前添加return -
@MoshFeu 是的,如果我在 response.text() 方法之前返回,我可以访问任何内容。但在这种情况下,我永远无法访问“then”语句中的响应文本。你有什么想法吗?
标签: javascript asynchronous fetch sweetalert2