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

Method executing on undefined result (from method with promises to resolve)

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

获得的信息

我的问题是当我在这里调用这个方法时:

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

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

results 被 transformToSegments 使用。我调试了很多 console.log() 并且我看到 transformToSegments 在 getServices 得到解析之前正在执行,因此它尝试处理未定义的结果。我显然做错了什么,但我无法修复它。 感谢您的帮助!

提前致谢,

茱莉亚

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

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

这将延迟转换的执行,直到 then 被调用。