我有一个服务文件,它在某些条件下返回一个可订阅的结果(显然是进行http调用),在其他条件下返回一个普通对象。自从我使用
.subscribe
在里面
component.ts
若要调用此服务方法,请在不发生http调用的情况下获取“TypeError:对象不支持属性或方法‘map’”。
组成部分ts
文件代码
this.myservice.userAuthenticate( 'user' ).subscribe(result => {
console.log('results', result);
});
我的服务文件是这样的
public userAuthenticate(user ): Observable<any> {
const expired = this.expiry.hasExpired();
if ( expired )
return this.userService.generateUserId('some input' ).map( data => {
this.CheckUser( User);
return <any>userInfo;
} );
}
} else {
return this.CheckUser( User).map( response => {
return <any>userInfo;
} );
}
在else部分,Im只是从存储器中获取数据并使用
CheckUser
方法没有发生http调用,这给了我上述错误。即使没有http调用,是否有任何方法可以返回可订阅的结果?
一个解决方法是从组件文件中进行检查,并且只订阅第一部分,但我必须在许多地方进行与此特定方法相同的更改。有谁能告诉我,在其他情况下,我如何才能给出订阅响应?