2017-09-11 17 views
0

アプリケーションの有効期間内にすべての瞬間呼び出しにデフォルトのタイムゾーンを設定する必要があるため、論理的なことは設定ツールをエントリポイントファイルに置くことでしたが、最初に評価されるべきこと。私のレデューサーの1人は、初期状態としてmoment().format()を持っており、エントリーポイントの前に評価されています。したがって、結果のdatetime文字列のオフセットが正しくありません。特定のコード行が早期に評価されるようにする

いくつかのコードが他のコードよりも前に評価されるようにする方法はありますか?初期状態の問題は、オブジェクトを関数に置き換えることで解決できる可能性がありますが、私はまだそのような問題の解決にどのようにアプローチするのだろうと思います。

答えて

1

異種のコードセクションの実行順序に頼るべきではありません。たとえそれが現時点で機能するようになったとしても、関連のないリファクタやフィーチャーが他の場所に追加されるため、バグを引き起こすような状況を作り出しています。

代わりに、TZが正しく設定されている瞬間を返す仲介者関数を記述します。何かのようなもの;

momentWithTz() { 
    return moment().tz("America/Los_Angeles"); 
} 

は、そして、単にTZは、それが完全に無関係な何か他のもので、以前に設定されたことを信頼するの明示的に代わりに設定されていることを確認して、あなたのコードの残りの部分では、伝統的なmomentの代わりにこれを使用します。

関連する問題