Javascript 如何修复';response.json不是一个函数';在异步/等待函数中
试图将我的响应转换为json。我不太确定我得到的是Javascript 如何修复';response.json不是一个函数';在异步/等待函数中,javascript,reactjs,Javascript,Reactjs,试图将我的响应转换为json。我不太确定我得到的是TypeError:response.json不是一个函数错误。谁能给我指一下正确的方向吗。提前谢谢 componentDidMount(){ this.timingFunction = setInterval(() => this.getAllStations(), 1000); } async getAllStations(){ try{ const r
TypeError:response.json不是一个函数
错误。谁能给我指一下正确的方向吗。提前谢谢
componentDidMount(){
this.timingFunction = setInterval(() => this.getAllStations(), 1000);
}
async getAllStations(){
try{
const response = await(`http:api.bart.gov/api/etd.aspx?cmd=etd&orig=${this.state.selectedStation}&key=${bartKey}&json=y`);
const data = await response.json();
console.log(`Here: ${data}`)
}catch(e){
console.log(`Error: ${e}`)
}
}
我希望看到json响应,但收到了错误消息。
编辑:在response.json()前面添加了wait;没有任何位置。您缺少获取调用(或从api获取数据的任何其他调用)。现在,您似乎把
wait
误认为是函数
const response=wait(`http:api.bart.gov..
(您还缺少http
之后的两个斜杠,但这还不是问题。)
试试这个:
const response=wait fetch(`http://api.bart.gov...
您正在使用wait作为函数
wait
是一个只等待承诺的系统,而不是执行承诺
const response=await('http:…')
你应该这样做
const response = await fetch('http:...');
为什么使用async..可以使用Promissions..@user7417866来完成这一点是正确的。然而,这也应该适用于async。async和await是用于承诺而不是从服务器/url获取数据的,最好的方法是使用ajax来获取服务器代码。更具体地说,await会导致异步函数暂停,直到承诺实现为止,但在您的情况下是它的获取来自URL的回复,而不是承诺者,非常感谢。我不敢相信我错过了。非常感谢FerryBig,我不敢相信我错过了。
您正在使用等待作为函数。。不,这是等待表达式
和表达式
这里是('http:…'))
,由于此处大括号不相关,因此等于等待'http:…'
(如const foo=('bar')
相当于const foo='bar'
)“await
表达式的右侧可以是任何类型的值,如果它不是承诺,那么它将转换为已解析的承诺。因此它本质上等同于const response=await Promise.resolve('http:…');