gpt4 book ai didi

javascript - 如何返回一个对象的 Observable,其中该对象具有使用 http 请求构建的属性? [接收]

转载 作者:行者123 更新时间:2023-12-03 01:21:02 25 4
gpt4 key购买 nike

我想从与 http 请求获取的方法不同的方法返回一种类型 - 我基本上想将该 http 请求的结果分配为对象的属性并返回该对象的可观察值。我理解为什么下面的内容不起作用,但为了获得代码的目的..

getAuditsByObjectAndType<T>(object: T): Observable<IAuditInformation<T>> {
const auditInfo: IAuditInformation<T> = {
audits: [],
object: object
};

auditInfo.audits = this.get<IAudit>(`audits?id=${object.id}`)
return Observable.of(auditInfo)
}

有运营商可以帮助我做我想做的事吗?

编辑:

得到了一个可行的实现,但可能会更好..

getAuditsByObjectAndType<T>(object: T): Observable<IAuditInformation<T>> {
const auditInfo: Observable<IAuditInformation<T>> = Observable.of({
audits: [],
object: object
});

return this.get<IAudit>(`AuditItems?id=${object.id}`)
.combineLatest(auditInfo, (audits, info) => {
info.audits = audits;
return info
});
}

最佳答案

您可以映射响应:

import 'rxjs/add/operator/map';

getAuditsByObjectAndType<T>(object: T): Observable<IAuditInformation<T>> {
return this.get<IAudit>(`audits?id=${object.id}`)
.map(audits => ({
audits,
object
}));
}

但是 typescript 无法知道您的 T 包含 id 属性,为了解决这个问题,您可以执行以下操作:

interface TheObjectWithAnId {
id: number;
}

getAuditsByObjectAndType<T extends TheObjectWithAnId>(object: T): Observable<IAuditInformation<T>>

关于javascript - 如何返回一个对象的 Observable,其中该对象具有使用 http 请求构建的属性? [接收],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51762794/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com