dojo/Deferredに関する質問があります。私は質問から始めて、次に私がやっていることについてもっと詳しく説明します:finally
ブロックのように、遅延の結果に関係なく、同じ行のコードを実行する方法はありますか? try...catch
声明?私が読んだことから、それはそこにあるようには見えませんが、多分ドキュメントを間違って理解していて、SOコミュニティでそのことを確認したかったのです。Dojo Deferredオブジェクトが解決または拒否された後に共通コードを実行する方法は?
は、ここで私がやっているものだ:
は道場1.9(も1.8で動作します)で、私はいくつかのデータをロードする前にCONTENTPANEためdojox.widget.Standby(積載オーバーレイ)をインスタンス化します。遅延呼び出しが完了すると、次のようにオーバーレイを非表示にします。
standby = new Standby({
... // standby props
});
this.addChild(standby);
standby.show();
queryResults = grid.store.query({
... // query props
});
queryResults.then(function (results) {
if (results) {
... // do something
}
standby.hide();
}, function (error) {
... // handle error
standby.hide();
});
これは正常です。しかし、おそらく、私は、1行ではなく複数行のコードを使用する遅延完了後に実装するプロセスをいくつか持つことができ、これらのコード行を複製したくないということがあります。別の方法として、プライベート関数を作成し、各ブロックに1つのライナーで呼び出す方法がありますが、より良い方法があれば、そのルートを取ることにします。
ありがとうございます!
あなたの答えの両方が正しいので、あなたと@Lucas両方は私の質問に答えています。 @Lucasに「ベストアンサー」を与えました。私は、「いつも」は追加の「それ」よりも明確な意図を表していると思うからです。しかし私はその正しさについてあなたの答えに投票しました。 – David