异步/等待 JS Catch 在 try/catch 中不起作用
Async / Await JS Catch not working in try/catch
下面有javascript的部分。在我们的 ES6 项目中使用 async/await。我注意到现在突然间 404 响应代码没有命中。事实上 .json() 也抛出一个控制台错误但仍然没有命中。我希望在尝试立即抛出并转到 catch 代码块时出现任何错误。
async getDash(projectId, projectUserId) {
try {
const events = (await this.apiHttp
.fetch(`${projectId}/users/${projectUserId}/participant-event-dash`)).json();
return events;
} catch (e) {
// fail back to local (dev testing)
return (await this.http
.fetch(`${this.appConfig.url}dist/api/query/json/partic-event-dash.json`)).json();
}
}
如果json()
方法是异步的,应该多加一个await
:
async getDash(projectId, projectUserId) {
try {
const events = await (await this.apiHttp
.fetch(`${projectId}/users/${projectUserId}/participant-event-dash`)).json();
return events;
} catch (e) {
// fail back to local (dev testing)
return await (await this.http
.fetch(`${this.appConfig.url}dist/api/query/json/partic-event-dash.json`)).json();
}
}
下面有javascript的部分。在我们的 ES6 项目中使用 async/await。我注意到现在突然间 404 响应代码没有命中。事实上 .json() 也抛出一个控制台错误但仍然没有命中。我希望在尝试立即抛出并转到 catch 代码块时出现任何错误。
async getDash(projectId, projectUserId) {
try {
const events = (await this.apiHttp
.fetch(`${projectId}/users/${projectUserId}/participant-event-dash`)).json();
return events;
} catch (e) {
// fail back to local (dev testing)
return (await this.http
.fetch(`${this.appConfig.url}dist/api/query/json/partic-event-dash.json`)).json();
}
}
如果json()
方法是异步的,应该多加一个await
:
async getDash(projectId, projectUserId) {
try {
const events = await (await this.apiHttp
.fetch(`${projectId}/users/${projectUserId}/participant-event-dash`)).json();
return events;
} catch (e) {
// fail back to local (dev testing)
return await (await this.http
.fetch(`${this.appConfig.url}dist/api/query/json/partic-event-dash.json`)).json();
}
}