【发布时间】:2019-12-05 11:30:21
【问题描述】:
我正在尝试调用我的支持者,它在我的服务内返回数据很好,但是当我尝试在不同的模块中使用该服务时,它要么记录undefined 要么记录Observable。谁能指出我一个好的方向?我已经阅读过有关 observables 的信息,但我不是 100% 确定我得到了它们,或者此时我什至需要一个。在我告诉他们去哪里会引发错误之前,我在页面加载时遇到了问题。
无论如何,这里是对后端的调用,它会按预期注销游戏数据。这是我的服务范围内。
async getAllGames() {
this.http.get(this.url).subscribe(gameData => {
console.log(gameData);
return gameData;
});
}
但是当我从其他模块调用我的服务函数时,它返回 undefined。
async getGames() {
const game = await this.games.getAllGames()
console.log(game);
_.each(game, (gameData) => {
this.gamesArray.push(gameData);
});
// this.loadCharts(this.gamesArray);
}
【问题讨论】:
-
它在您的服务中也不起作用。它只能访问异步方法中的数据。如果您尝试在服务中的其他任何地方记录它,您会看到相同的结果。您不能从订阅中返回/提取数据。它总是会返回一个可观察的,这意味着最终会发生某些事情,并且订阅只会在它发生时“捕获”它。如果你想要数据,你要么需要传递一个回调,要么改变一个变量
标签: javascript angular typescript observable