这可能是(可能是)一个简单的问题,但是我对如何处理承诺感到困惑。我已经阅读了很多关于它的内容,但是仍然不能完全理解它。我正在使用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
。