如何使用 2 个参数创建主题(rx.js)?
How to create subject ( rx.js) with 2 parameters?
我正在使用带有主题的服务作为我的 angular2 应用程序中组件的通信服务。
调用方式:
this.notification.create('test');
服务:
export class NotificationService {
private static notificationSource = new Subject<any>()
notiCreated$ = NotificationService.notificationSource.asObservable();
create(message) {
NotificationService.notificationSource.next(message);
}
}
调用函数:
this.subscription = notification.notiCreated$.subscribe(
data => {
console.log(data);
this.createNotification(data, 'warning');
});
但我想传递 2 个参数。我得到了错误。
我该怎么做?
由于next
的api是next(value: T): void
,所以只能带一个参数。
参考:http://reactivex.io/rxjs/class/es6/Subscriber.js~Subscriber.html
作为解决方法,您可以将消息分组到一个对象中:
this.notification.create({message1:'test', message2:'test2'});
当您消费时,只需select您需要的信息:
this.subscription = notification.notiCreated$.subscribe(
data => {
console.log(data.message1, data.message2);
this.createNotification(data.message1, 'warning');
});
我正在使用带有主题的服务作为我的 angular2 应用程序中组件的通信服务。
调用方式:
this.notification.create('test');
服务:
export class NotificationService {
private static notificationSource = new Subject<any>()
notiCreated$ = NotificationService.notificationSource.asObservable();
create(message) {
NotificationService.notificationSource.next(message);
}
}
调用函数:
this.subscription = notification.notiCreated$.subscribe(
data => {
console.log(data);
this.createNotification(data, 'warning');
});
但我想传递 2 个参数。我得到了错误。
我该怎么做?
由于next
的api是next(value: T): void
,所以只能带一个参数。
参考:http://reactivex.io/rxjs/class/es6/Subscriber.js~Subscriber.html
作为解决方法,您可以将消息分组到一个对象中:
this.notification.create({message1:'test', message2:'test2'});
当您消费时,只需select您需要的信息:
this.subscription = notification.notiCreated$.subscribe(
data => {
console.log(data.message1, data.message2);
this.createNotification(data.message1, 'warning');
});