在未定义结果上执行的方法(来自承诺要解析的方法)

时间:2017-11-03 20:33:57

标签: javascript angularjs typescript angular-promise

这可能是(也可能是)一个简单的问题,但我对如何处理承诺感到困惑。我已经阅读了很多关于它的内容,但仍然无法完全理解它。我正在使用Typescript和Angular,并且我正在从API REST请求数据。我有一个方法getServices,它返回一个数组,其中包含我从API获得的信息。

我的问题是我在这里调用此方法:

this.getServices = (query) => {
            return this.source.getServices(query)
            .then(this.transformToSegments(false));
        };

我遇到错误TypeError:结果未定义。

结果由transformToSegments使用。我把很多console.log()用于调试,我看到transformToSegments在getServices被解析之前正在执行,因此它尝试处理未定义的结果。我显然做错了什么,但我还没能解决它。 任何帮助表示赞赏!

提前致谢,

朱莉娅

1 个答案:

答案 0 :(得分:2)

这是一个常见的错误。您正在将this.transformToSegments(false)的结果传递给.then()回调。我假设你想要更像的东西:

.then(results => this.transformToSegments(false, results))

这将延迟变换的执行,直到调用then