我不知道如何在我的http中使用当前返回的
。getUserHeaders()
的可观察值。获取
类型“可观察”
能够将我的可观察返回方法
getUserHeaders()
的值用作http
调用中的headers
属性。而只返回http
调用的可观察值。
(它使用由
getUserHeaders()
返回的harcoded头(因此不是可观察的
或
promise的
)。
getAllParticipants(): Observable<Array<Participant>> {
return this.http.get('someUrl',
{headers: this.getUserHeaders()})
.map(response => {
return response.json();
});
});
}
通过用TypeScript的答案从Angular2中的超文本传输协议数据中链接RxJS可观测数据,我来到了
平板地图
方法。(请注意,这段代码当前抛出了“当前错误”)
getUserHeaders(): Observable<Headers> {
let headers: Headers = new Headers();
return NativeStorage.getItem("user").map(
data => {
headers.append('API_KEY', data.json().apiKey);
headers.append('DEVICE_ID', data.json().deviceId);
return headers
}).catch( error => {
console.log("error");
headers.append('API_KEY', 'TEST');
headers.append('DEVICE_ID', 'TEST');
return headers;
}
);
}
/** retrieves ALL the participants from the database */
getAllParticipants(): Observable<Array<Participant>> {
return this.getUserHeaders().flatMap( data => {
return this.http.get('someUrl', {headers: data}).map(response => {
return response.json();
});
});
}
http://plnkr.co/edit/A0tEB9EUodWQS6AnqrtH?p=info
(注意:
Observable.fromPromise()
在这里不起作用,所以我创建了两个返回promise的方法-现在我想使用getUserHeaders()
的值在get参与者()
和仍然返回的promise/可观察的get参与者()
和没有从getUserHeaders()
就个人而言,我的问题的解决方案是使用行为主体
:
在用(数据来源):
private theBoolean: BehaviorSubject<boolean>;
constructor() {
this.theBoolean = new BehaviorSubject<boolean>(false);
}
public getTheBoolean(): Observable<boolean> {
return this.theBoolean.asObservable();
}
发出布尔值的新值
public setTheBoolean(newValue: boolean): void {
this.theBoolean.next(newValue);
}
在组件中(数据的用户):
this.theService.getTheBoolean().subscribe(value => console.log(value));
Reddit上的“pashozator”功劳
将您的getUserHeaders()
更改为:
getUserHeaders(): Observable<any> { return Observable.of(NativeStorage.getItem("user"); }
然后构造你的头对象在get参与者()
。这样,您可以保持平面地图
学习观察和Angular2。我想找出在多个Angular2组件之间共享可观察到的最佳实践。作为可观察的默认值是不是多播。因此,我的应用程序的不同部分的每个订阅将打开一个新的流(再次调用我的API服务器!)。此外,我需要分享价值,并获得可观察到的最新价值。我听到人们使用行为主题。但这真的很令人困惑,我找不到一个好的例子。以下是我如何在我的AuthService中处理这个问题: 在Angular2组件
我有一个带有http请求的服务,它返回我的标题的可观察到的内容 servise.ts 在我的组件中,我有一个函数从service get Request设置。看起来是这样的: 问题是,有时我接收到带有空标签的标题,不需要显示它们,所以我需要对其进行过滤,并对此标题发送.delete()请求。我尝试了类似的方法(想法是在之前添加,然后在另一个subscribe内部调用。)差不多吧 但不确定这是不是个
我有2个API调用第二个调用使用第一个调用返回的东西。有了promise,这很容易: 我将如何使用可观测数据来实现这一点?
函数应该从get请求返回一个 在这种情况下,我只能在为真时执行请求,否则我在函数
我有一个组件订阅服务中的一个可观察对象。该方法反过来订阅另一个服务中的可观察对象。我想将一个数组从最后一个服务传递回第一个服务,然后第一个服务将该数组传递回组件。更具体地说,该组件调用其本地服务,然后调用一个数据服务,该数据服务通过http客户端访问我的数据库。http客户端正在工作,数据服务将数组返回给本地服务。本地服务接收数组,但我不知道如何将该数组作为可观察对象传递回组件。以下是简短的代码块
学习角得到服务和组件和可观察性。 我正在尝试在我的演示应用程序中实现暗模式。该控件由一个服务完成,该服务根据浏览器默认值(如果找到)设置暗主题。 它在应用程序组件中初始化,以便以后在应用程序中放置控制开关。 暗模式从布尔值开始工作,因此为true或false。据我所知,使用一个可观察对象是不够的,因为我希望多个订阅者都以两种方式绑定到订阅,每种方式在服务中切换这些可观察对象。到目前为止,我很肯定这