javascript - 所有代码路径不返回值?

标签 javascript arrays angular typescript

知道这里的问题是什么我收到错误“并非所有代码路径都返回值”吗?

还有比使用 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/

相关文章:

javascript - 重构 if else 语句以使用 Ramda.js 并将键值对分解为对象记录

c# - 在 'foreach' 循环中获取数组键

java - 将参数传递给对象,同时实例化数组

html - mat-select - mat-option 排序值

Angular2在routerLink中设置当前路由的参数

javascript - 如何使用 Knex.js 从列中检索唯一值?

javascript - 如何使用 axios 使用 Vue.js 制作用户登录页面

c++ - 使用指针符号循环遍历数组

twitter-bootstrap - Angular 2 Bootstrap 4 和 ng-bootstrap

javascript - 为什么我在 chrome 中会出现未定义函数的错误?