尝试 return 函数结果时出现可观察到的错误
Observable error while trying to return function result
我需要从 api 获取结果并将它们订阅到变量。
我的密码是
getInnerData = (obj: CampaignLineItem) => {
let packetLineItemsParams = graphqlHelper.getWhereParams();
packetLineItemsParams.where._and.push({
packet: { _eq: obj.Packet },
});
let tempObj: any = { ...obj };
this._campaignLineItemService
.getLineItemsByPacket(packetLineItemsParams)
.subscribe((data) => {
tempObj.innerDataItems = data.data;
obj = tempObj;
return obj;
});
};
public mapObjects = (items: CampaignLineItem[]): Observable<CampaignLineItem[]> => {
let usersData: CampaignLineItem[] = items.map((obj) => ({
...obj,
innerDataItems: this.getInnerData(obj),
}));
return usersData;
};
this.mapObjects(
items
).subscribe((data) => {
this.dataSource.data = data;
});
我在 return 上收到以下错误
任何想法为什么
mapObjects
的 return 类型是 Observable<CampaignLineItem[]>
。那不是 CampaignLineItem[]
,那是 usersData
。
我认为您可以通过以下方式克服此错误:
import { of } from 'rxjs';
...
return of(usersData);
我需要从 api 获取结果并将它们订阅到变量。 我的密码是
getInnerData = (obj: CampaignLineItem) => {
let packetLineItemsParams = graphqlHelper.getWhereParams();
packetLineItemsParams.where._and.push({
packet: { _eq: obj.Packet },
});
let tempObj: any = { ...obj };
this._campaignLineItemService
.getLineItemsByPacket(packetLineItemsParams)
.subscribe((data) => {
tempObj.innerDataItems = data.data;
obj = tempObj;
return obj;
});
};
public mapObjects = (items: CampaignLineItem[]): Observable<CampaignLineItem[]> => {
let usersData: CampaignLineItem[] = items.map((obj) => ({
...obj,
innerDataItems: this.getInnerData(obj),
}));
return usersData;
};
this.mapObjects(
items
).subscribe((data) => {
this.dataSource.data = data;
});
我在 return
mapObjects
的 return 类型是 Observable<CampaignLineItem[]>
。那不是 CampaignLineItem[]
,那是 usersData
。
我认为您可以通过以下方式克服此错误:
import { of } from 'rxjs';
...
return of(usersData);