Node.js Axios get请求挂起,无错误,未触发捕获
当我在节点上使用axios发出GET请求时,它只是挂起,捕获不会抛出,也不会捕获错误 我不确定如何调试,没有抛出错误。我正在启动spotify API,但如果这方面出现问题,我肯定会得到一些响应 有一段时间我遇到了一个EconReset错误,我的互联网不太稳定。但这个错误不再被抛出 我尝试过使用fetch,同样的问题。我回到了经典的承诺语法。从现在起,它一直运转良好 调用并记录此方法Node.js Axios get请求挂起,无错误,未触发捕获,node.js,express,axios,spotify,Node.js,Express,Axios,Spotify,当我在节点上使用axios发出GET请求时,它只是挂起,捕获不会抛出,也不会捕获错误 我不确定如何调试,没有抛出错误。我正在启动spotify API,但如果这方面出现问题,我肯定会得到一些响应 有一段时间我遇到了一个EconReset错误,我的互联网不太稳定。但这个错误不再被抛出 我尝试过使用fetch,同样的问题。我回到了经典的承诺语法。从现在起,它一直运转良好 调用并记录此方法 "node": "10.0.0", "axios": "^0.19.0", “req method calle
"node": "10.0.0",
"axios": "^0.19.0",
“req method called”被记录下来,cred就在那里,没有其他内容,只是挂起。无需将调用存储在函数中。把这个电话当作承诺吧
function tryFetchForPlaylists(usersCred) {
console.log('req method called ', usersCred)
let playlistData;
return axios.get('https://api.spotify.com/v1/users/' + usersCred.userId + '/playlists',
{
headers: {
'Authorization': 'Bearer ' + usersCred.accessToken,
'Content-Type': 'application/json'
}
})
.then((data) => {
// return your data here...
})
.catch((err) => {})
}
axios.get()。您需要对该承诺使用wait
或.then()
来获取值。而且,try/catch
只有在使用wait
时才会出错。否则,您应该使用.catch()
查看错误。@jfriend00如果我使用.then()
和.catch()
-我在200中获得JSON,这一切都很好。但是,将其返回到使用wait
的函数不起作用let status=等待tryFetchForPlaylists(userCreds);console.log('waiting for status',status)`状态是undefined
WelltryFetchForPlaylists()
只是实现错误,所以您不能等待它。您必须修复它的实现。看起来你需要读一些关于你如何从承诺中得到错误的书try/catch
仅适用于异步函数中的情况,并且承诺您正在使用wait
on。如果您没有执行await fetch()
,则必须使用fetch().then().catch()
来捕获错误。是的,谢谢,我以前在中使用了async
和await
块,请尝试catch
。现在似乎可以与您的配置配合使用。我确实得到了JSON,但由于某种原因无法返回调用方函数。我在调用者函数中使用了wait
,但它仍然没有定义。@godhar我做了一些编辑,应该允许您将数据返回调用者。确保返回axios
promise,然后返回数据。如果这有助于您解决问题,您介意将其标记为解决方案吗?谢谢我忘了返回
axios函数-该死!我会投票给你@caden311
function tryFetchForPlaylists(usersCred) {
console.log('req method called ', usersCred)
let playlistData;
return axios.get('https://api.spotify.com/v1/users/' + usersCred.userId + '/playlists',
{
headers: {
'Authorization': 'Bearer ' + usersCred.accessToken,
'Content-Type': 'application/json'
}
})
.then((data) => {
// return your data here...
})
.catch((err) => {})
}