我正在提取API,它运行良好。 但在这种情况下, resp 始终为 null 。 我想知道如何影响此发布请求的结果 resp var 。
var resp = null
fetch('http://a1a239a6.ngrok.io/api/login', {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
body: "email=" + email + "&password=" + password,
}).then((response) => response.json())
.then((responseJson) => resp = responseJson)
.catch((error) => console.error(error))
if (resp != null) {
navigate('Welcome', {
user: resp
})
console.log(resp)
}
答案 0 :(得分:0)
我认为这是因为导航功能的指令是在api回答(异步)之前执行的
你需要在你的声明中移动它:)
答案 1 :(得分:0)
如果要将数据绑定到变量,则应使用提供的回调。
fetch('http://a1a239a6.ngrok.io/api/login', {
method: 'POST'
}).then(function(response) {
navigate('Welcome', { user: response})
}).catch(function(err) {
// Error
});
因此,一旦成功,它将自动运行您的导航功能,您可能希望在此之前验证您检索到的数据。
错误时,您可以立即运行模态或执行您想要的操作。
以前的代码问题是它无论如何都会运行async,所以即使在回调中你将resp设置为检索到的数据,逻辑也会运行并检查null变量。