来自可观察对象的数据始终未定义
Data from the observable is always undefined
我有一个服务 return 一个对象数组的可观察对象
allFruits: Fruit[] = [
{
id: "1",
name: "fruit 1"
},
{
id: "2",
name: "fruit 2"
},
{
id: "3",
name: "fruit 3"
},
{
id: "4",
name: "fruit 4"
}
];
function getFruits {
return of(allFruits);
}
组件
allFruits: Observable<Fruit[]>;
constructor(
private fruitService: FruitService
) {
this.fruitService
.getFruits()
.pipe(first())
.subscribe(() => {
results => this.allFruits == results;
});
this.allFruits 始终未定义,其中没有任何值。如果我这样做 console.log(results) 我会得到值
您不得使用相等运算符 ==
而不是 =
赋值运算符。
allFruits: Observable<Fruit[]>;
constructor(
private fruitService: FruitService
) {
this.fruitService
.getFruits()
.pipe(first())
.subscribe(() => {
results => this.allFruits = results;
});
我假设您希望 allFruits
成为一个数组而不是一个 Observable。那是对的吗?我还稍微更改了订阅 lambda 函数。
allFruits: Fruit[];
constructor(
private fruitService: FruitService
) {
this.fruitService
.getFruits()
.pipe(first())
.subscribe(results => {
this.allFruits == results;
});
如果您打算将此服务与 async
管道结合使用,您可以执行以下操作:
allFruits: Observable<Fruit[]>;
constructor(
private fruitService: FruitService
) {
this.allFruits = this.fruitService
.getFruits()
.pipe(first());
然后您可以在模板中将 allFruits
与异步管道一起使用。
allFruits: Observable<Fruit[]>;
constructor(
private fruitService: FruitService
) {
this.fruitService
.getFruits()
.pipe(first())
.subscribe(() => {
results => this.allFruits = results;
});
但是这里 first() 运算符将 return 第一个不是 Array 类型的对象,你不应该使用 Array 类型或者你应该删除 first() pipe
我有一个服务 return 一个对象数组的可观察对象
allFruits: Fruit[] = [
{
id: "1",
name: "fruit 1"
},
{
id: "2",
name: "fruit 2"
},
{
id: "3",
name: "fruit 3"
},
{
id: "4",
name: "fruit 4"
}
];
function getFruits {
return of(allFruits);
}
组件
allFruits: Observable<Fruit[]>;
constructor(
private fruitService: FruitService
) {
this.fruitService
.getFruits()
.pipe(first())
.subscribe(() => {
results => this.allFruits == results;
});
this.allFruits 始终未定义,其中没有任何值。如果我这样做 console.log(results) 我会得到值
您不得使用相等运算符 ==
而不是 =
赋值运算符。
allFruits: Observable<Fruit[]>;
constructor(
private fruitService: FruitService
) {
this.fruitService
.getFruits()
.pipe(first())
.subscribe(() => {
results => this.allFruits = results;
});
我假设您希望 allFruits
成为一个数组而不是一个 Observable。那是对的吗?我还稍微更改了订阅 lambda 函数。
allFruits: Fruit[];
constructor(
private fruitService: FruitService
) {
this.fruitService
.getFruits()
.pipe(first())
.subscribe(results => {
this.allFruits == results;
});
如果您打算将此服务与 async
管道结合使用,您可以执行以下操作:
allFruits: Observable<Fruit[]>;
constructor(
private fruitService: FruitService
) {
this.allFruits = this.fruitService
.getFruits()
.pipe(first());
然后您可以在模板中将 allFruits
与异步管道一起使用。
allFruits: Observable<Fruit[]>;
constructor(
private fruitService: FruitService
) {
this.fruitService
.getFruits()
.pipe(first())
.subscribe(() => {
results => this.allFruits = results;
});
但是这里 first() 运算符将 return 第一个不是 Array 类型的对象,你不应该使用 Array 类型或者你应该删除 first() pipe