【发布时间】:2020-05-18 16:43:51
【问题描述】:
这就是我所拥有的。
var a;
handleSubmit(event) {
var a ;
event.preventDefault();
this.setState({username:'poop'})
console.log("submit");
fetch('http://localhost:8080/login/'+this.state.username+'/'+this.state.password,{
method: 'GET',
}).then((resp)=> resp.text())
.then(resp => {
console.log(resp)
a = resp;
});
console.log(a);
我的问题是 console.log(resp) 将记录我需要的正确值(“成功”),但是当我尝试执行 var a = resp 时,它显示为未定义。我的 api 返回 1 个字符串,成功或失败。日志将显示成功,但由于某种原因,我无法将其分配给变量。
【问题讨论】:
-
该代码不完整。您在哪里分配“a”以及在哪里检查未定义的值?
-
@AlanGrosz 刚刚修复它以提高清晰度
-
好的。 @Shubham Khatri 已经回答了。问题是异步请求。如果你在 http 调用之后设置了一个 console.log,它将是未定义的。您必须在 then 中执行此操作或使用 await
-
@AlanGrosz 使用 await 的目的是什么?我看过很多次,但从未真正理解它的重要性。
标签: javascript reactjs api fetch