【发布时间】:2022-08-16 04:45:05
【问题描述】:
也许我忘记了这个函数的返回类型。但我不知道如何适应它。首先保持我原来的功能从迁移到打字稿 请分享你的答案:)
const arrayPromise: Promise<string[]> = new Promise<string[]>((resolve, reject) => {
// requset element : depAirportId, arrAirportId, depPlandTime // chose certain airline : &airlineId=AAR
axios.get(url)
.then((res:any) => {
// ! Not all code paths return a value.ts(7030)
const item = res.data.response.body.items.item
this.state.totalCount = res.data.response.body.totalCount
if(this.state.totalCount < 1)
return this.state.noTicket
this.state.depTime = res.data.response.body.items.item.forEach((obj:any) => {
/* 보간법을 이용하면 function 가능 (object에 간섭을 안하므로 가능) */
obj.depTime = `${obj.depPlandTime}`.slice(-4, -2)
/* Object.values : make every Object to Array */
return Object.values(obj)
})
this.state.depMin = res.data.response.body.items.item.forEach((obj:any) => {
obj.depMin = `${obj.depPlandTime}`.slice(-2)
return Object.values(obj)
})
this.state.arrTime = res.data.response.body.items.item.forEach((obj:any) => {
obj.arrTime = `${obj.arrPlandTime}`.slice(-4, -2)
return Object.values(obj)
})
this.state.arrMin = res.data.response.body.items.item.forEach((obj:any) => {
obj.arrMin = `${obj.arrPlandTime}`.slice(-2)
return Object.values(obj)
})
-
你需要
resolve(ret); return;而不是return ret;。但是如果你只是res = await axios.get...你可以摆脱new Promise,使用return并且不要在错误的情况下被遗忘。 -
谢谢回答!我会尝试你的建议。
-
对不起。您能提供更多详细信息吗?
标签: typescript vuex typescript-typings