2

部分マッピング関数 (すべての可能な入力が有効であるとは限りません) を使用する場合、小さなヘルパーを作成することになりました。

function strictMap(property, f) {
  return property.withHandler(function (ev) {
    try {
      var x = ev.fmap(f);
      // force
      if (x.hasValue()) {
        x.value();
      }
      return this.push(x);
    } catch (err) {
      return this.push(new Bacon.Error(err));
    }
  });
}

このヘルパーを使用するstrictMap(property, myMapper)と、 と同じ方法で使用できますproperty.map(myMapper)。そのような機能はすでに Bacon.js のどこかにありますか、それとも間違った方法で何かをしていますか?

何もキャッチしないObservable.mapと比較しますか?

4

1 に答える 1

2

答えはノーです。現在、Bacon.js にはそのような機能はありません。

Javascript の例外は一般的にソフトウェアのバグであり、通常の操作の一部として処理されるべきものではないため、これまで例外をキャッチする必要はなかったと思います。たとえば、JQuery の AJAX エラーは例外としてモデル化されません。

いずれにせよ、 Githubで新しい Issue を開くことをお勧めします。これが私たちに必要なものだと感じている人が他にいるかどうか見てみましょう。これを行いたい場合は、例外処理をより一般的な方法で実装する必要があると思います。つまり、「マップ」と組み合わせないでください。

あなたの実装は、ところで、よさそうです!

于 2013-11-04T06:07:49.903 に答える