这可能是(也可能是)一个简单的问题,但我对如何处理承诺感到困惑。我已经阅读了很多关于它的内容,但仍然无法完全理解它。我正在使用Typescript和Angular,并且我正在从API REST请求数据。我有一个方法getServices,它返回一个数组,其中包含我从API获得的信息。
我的问题是我在这里调用此方法:
this.getServices = (query) => {
return this.source.getServices(query)
.then(this.transformToSegments(false));
};
我遇到错误TypeError:结果未定义。
结果由transformToSegments使用。我把很多console.log()用于调试,我看到transformToSegments在getServices被解析之前正在执行,因此它尝试处理未定义的结果。我显然做错了什么,但我还没能解决它。 任何帮助表示赞赏!
提前致谢,
朱莉娅
答案 0 :(得分:2)
这是一个常见的错误。您正在将this.transformToSegments(false)
的结果传递给.then()
回调。我假设你想要更像的东西:
.then(results => this.transformToSegments(false, results))
这将延迟变换的执行,直到调用then
。