首页 > 解决方案 > 从角度的可观察操作返回值?

问题描述

我在 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...")}
        });;

标签: javascriptangularasynchronousobservablesynchronous

解决方案


你为什么不这样使用它:

gtc.getData().subscribe(res => { 
    //whatever you want to do with res 
});

res是从您的函数返回的数据,您可以按照自己的方式使用它,例如将其分配给另一个变量等等......


推荐阅读