我有被分配的值的服务共享组件之间的变量如下,为什么我不能分配和使用组件内的值?
import { Injectable } from '@angular/core';
import { Subject } from 'rxjs/Subject';
@Injectable()
export class AppMessageQueuService {
checkOutPageParams: Subject<Object>;
constructor() {
this.checkOutPageParams = new Subject<string>();
}
}
我使用这项服务于以下参数传递到另一组件时,
this.appMsgService.checkOutPageParams.next({
'userId': listItem.userInfo.userId,
'listingId': listItem.listingId,
'event': this.event
});
我可以看到到事件当我调试,这是我如何得到在第二个组件的值,
this.appMsgService.checkOutPageParams.asObservable()
.switchMap((params: Object) => {
let userId = params['userId'];
let listingId = params['listingId'];
this.event = params['event'];
return this.checkOutInforService.getCheckoutDetails(userId, listingId);
}).subscribe((checkoutDetail: CheckoutUserDetail) => {
this.checkoutInfoDetails = checkoutDetail;
});
console.log(this.event) //this returns undefined
我可以看到值分配给事件以及。但是当我在上面的行后面打印一个console.log(this.event)时,它说undefiend。
问题是什么。我怎么能值分配给事件和组件2
你就是不行。 Observable是异步的,因此console.log在分配this.event之前执行。在'subscribe'块中移动语句。 – pixelbits
如何使用该值然后 – Sajeetharan
使用您的订阅块内的值。 – pixelbits