对未定义结果执行的方法(来自承诺解析的方法)
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
被调用。
这可能是(而且可能是)一个简单的问题,但我真的很困惑如何处理承诺。我已经阅读了很多有关它的内容,但仍然无法完全理解。我正在使用 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
被调用。