我在Angular工作,问题似乎是:当我订阅我的组件中的observable时,我可以成功地将console.log()数据分配给我,但是我无法将数据分配给任何前面声明的变量并查看它视图模板。这是代码:我理解在控制台中登录是一个同步过程,而可观察订阅本身是异步的,但是在视图模板中从异步操作输出值似乎是个问题。我已经看到了很多关于堆栈溢出的解决方案,但它没有解决问题,因为它没有解决这类问题。 这是代码的示例
//The getData function returns an obsverbale
favoriteShirt;
const gtc = this;
gtc.getData().subscribe({
next: (data) => {
console.log(data.favShirtFromStore) // this returns an objects with the shirts (this is a sync op)
gtc.favoriteShirt = data.favShirtFromStore; //this returns undefined <= where the problem is
},
error:(err)=>{console.log(`There was an error ${err}`)},
complete:()=>{console.log("Completed...")}
});;
答案 0 :(得分:1)
你为什么不这样用它:
gtc.getData().subscribe(res => {
//whatever you want to do with res
});
此处res
是您的函数返回的数据,您可以按照自己的方式使用它,例如将其分配给另一个变量等等......