【问题标题】:All code paths does not return the value?所有代码路径都不返回值?
【发布时间】:2018-11-17 00:56:52
【问题描述】:

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

还有没有更好的方法来使用 ES6 而不是 forEach 编写代码?

main.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;
            }
        }


    });
}

【问题讨论】:

    标签: javascript arrays angular typescript


    【解决方案1】:

    只有当您的成员条目之一匹配时,您才会返回一个值(一个 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 并没有什么特别的问题。

    【讨论】:

    • 好的,如果不是成员不匹配,我会使用 Promise.reject(e) 发送错误,我想我明白了
    • 在那种情况下,无论如何你都会被拒绝,但我想你明白了。
    猜你喜欢
    • 2011-12-17
    • 1970-01-01
    • 1970-01-01
    • 2021-11-08
    • 2013-10-06
    • 2016-02-14
    • 2014-04-02
    相关资源
    最近更新 更多