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

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

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


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

结果由transformToSegments使用。我投入了大量的console.log()进行调试,我发现transformToSegments在解析getServices之前正在执行,因此它尝试在未定义的结果上工作。我显然做错了,但我无法修复。
任何帮助表示赞赏!

提前致谢,

朱莉亚

最佳答案

这是一个常见的错误。您正在将this.transformToSegments(false)的结果传递给.then()回调。我认为您想要更多类似的东西:

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


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

09-25 16:07