私はいくつかのサービスに対して以下のsubscribe関数を持っています。typescript subscribe関数の外で値を取得する方法
this.sub = this.route.params.subscribe(params => {
this.id = params['id'];
this._someService
.thisById(this.id)
.subscribe(value => {
this.valueObj = value;
});
});
これは大丈夫です。それ以外は、subscribe関数の外で次の関数にthis.valueObjを使用する必要があります。
private _checkOpeningHours(data: any): string {
const curDayName = this._getDayName();
const todaysOpeningData = ***this.valueObj***.openHours[curDayName];
if (!todaysOpeningData) return "ERROR!";
if (!todaysOpeningData.status) return `IT'S ${curDayName.toUpperCase()} - WE ARE CLOSED TODAY!`;
return `IT'S ${curDayName.toUpperCase()}, ${new Date().toLocaleString("en-US", { hour: '2-digit', minute: '2-digit' })} - ${this._isOpen(todaysOpeningData) ? 'WE ARE OPEN' : 'SORRY, WE ARE CLOSED'}!`;
}
private _refresh() {
this.opening = this._checkOpeningHours(***this.valueObj***.openHours[this._getDayName()]);
setTimeout(() => this._refresh(), 60 * 1000);
}
は、どのように私は、これらの機能は、this.valueObjで動作するように入手できますか?
私は角度についてはあまりよく分かりませんが、多くの依存性注入を使用することを覚えています。角度が値を注入するように、名前に一致するパラメータをメソッドに追加できますか? – styfle
このthisById関数が非同期であり、thisByIdが返す前に他の関数を呼び出すことは問題ではないと確信していますか? – toskv
'_checkOpeningHours'と' _refresh'関数はどこに定義されていますか?他のコードと同じクラスにはありませんか? plsはいくつかの文脈を追加します – lenny