知道这里的问题是什么我收到错误“并非所有代码路径都返回值”吗?
还有比使用 forEach 更好的方法是使用 ES6 编写代码吗?
主要.ts
if (rxInfos.length && rxInfos !== undefined) {
rxInfos.forEach((rxInfo: any) => {
// const requestArray: IRequestURL[] = [];
for (const member of specialtyMembers) {
if (member.indexID === rxInfo.indexID) {
proxyMember = member;
if (!member.dateOfBirth) {
statusDesc = "member dateOfbirth not found";
return Promise.reject(this.errorHandler(request, statusDesc));
}
const body: any = this.buildSingleRequestBody(proxyMember, rxInfo);
const requestObject = this.specialtyQuestionRequest(body);
this.requestArray.push(requestObject);
break;
}
}
});
}
最佳答案
如果您的成员条目之一匹配,您只会返回一个值(一个 Promise)。不确定如果不匹配你想要发生什么,但你可能想以任何一种方式返回一个 promise ,所以在循环之后添加 return Promise.resolve() 来处理这种情况:
if (rxInfos.length && rxInfos !== undefined) {
rxInfos.forEach((rxInfo: any) => {
// const requestArray: IRequestURL[] = [];
for (const member of specialtyMembers) {
if (member.indexID === rxInfo.indexID) {
proxyMember = member;
if (!member.dateOfBirth) {
statusDesc = "member dateOfbirth not found";
return Promise.reject(this.errorHandler(request, statusDesc));
}
const body: any = this.buildSingleRequestBody(proxyMember, rxInfo);
const requestObject = this.specialtyQuestionRequest(body);
this.requestArray.push(requestObject);
break;
}
}
return Promise.resolve();
});
}
鉴于您提供的内容,在这里使用 forEach 并没有什么特别的错误。
关于javascript - 所有代码路径不返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53342070/