重构从fetch到await可以产生相同的结果



所以我移动了一个不可重用的获取请求代码片段到我的API:

let response = await fetch(visitURL, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + userJWT
},
body: JSON.stringify(endingVisit)
});
if (response.ok) {
let {visitId, createdAt} = await response.json();
const viewVisitDto = new ViewVisitDto(`${visitId}${createdAt}${visitorId}${doctorId}${oldPatientId}`);
return viewVisitDto;
} else {
throw new Error("deactivated!")
}

我能走到这一步:

axios.post(visitURL, {
headers,
body: JSON.stringify(visit)
}).then((response) => {
console.log(response);
}).catch((error) => {
console.log(error);
})

但不能准确地从响应中给出visitIdcreatedAt,我不能使用response.okresponse.json()。本质上,我需要拉出visitIdcreatedAt,它们应该在响应中返回。

我也尝试过使用node-fetch库,但是尽管在VS代码中它似乎接受它,TypeScript对它并不满意,即使我安装@types/node-fetch,甚至当我为它创建类型定义文件时,我的API也不喜欢它。

猜你要找的是什么

// don't know axios, but if it returns a promise await it
const dto = await axios.post(visitURL, {
headers,
body: JSON.stringify(visit)
}).then((response) => {
// parse response
return {resonse.visitId, resonse.createdAt}
}).then(({visitId, createdAt}) => {
// form dto (where are other vals)?
return new ViewVisitDto(`${visitId}${createdAt}${visitorId}${doctorId}${oldPatientId}`);
}).catch((error) => {
console.log(error);
})

然而,你没有提到doctorId和oldPatientId来自哪里…您尝试提供更多信息,包括console.log的输出和周围的代码

相关内容

  • 没有找到相关文章

最新更新