如何将今天日期传递给 'new BehaviorSubject(date)' Angular 6

How to pass today date to 'new BehaviorSubject(date)' Angular 6

我有一个 angular 6 用例,其中, 我需要更新应用程序组件中的日期,所有其他组件都将使用该日期,这些组件将点击 mysql 数据库以使用带有上述日期的 select 查询来获取数据。我能够通过编写服务来实现。

现在我希望默认日期显示为今天或第二天, 从

返回
SELECT valval FROM global_configs WHERE valname = 'erday'

为哪个服务编写如下

@Injectable()
export class ErdayService {

  public baseUrl = 'http://localhost:8080/api';
  public erday:any;  
  **private dateSource = new BehaviorSubject('Default Date');**
  currentMessage = this.dateSource.asObservable();

  constructor(private _http: Http) { }

  getErday() {

    return this._http.get(this.baseUrl + '/erday');
    }

    changeMessage(message: string) {
      console.log("getting message...",message);
      this.dateSource.next(message)
    }

    setDate(dateValue:any){
      this.dateSource.next(dateValue);  
    }
}

但我想传递今天的日期或从 getErday() 收到的 'erday' 而不是 'Default Date' private dateSource = new BehaviorSubject('Default Date');

有人可以帮助我吗?我是 Angular 的新手,服务和 Observables 总是让我感到困惑。

如果您想传递今天的日期,请使用 javascript 的 Date:

private dateSource = new BehaviorSubject<any>(new Date().toLocaleDateString()));

如果您想传递从 getErday() 收到的 'erday',您可以使用 tap 运算符来接入 observable

的流量
import {tap} from 'rxjs/operators';//
private dateSource = new BehaviorSubject<any>('Default Date');
        return this._http.get(this.baseUrl + '/erday').
        pipe(tap(result=>
        {this.setDate(result);
        return result;})
        );