2

.done コールバックを正しく動作させることができないため、JS ライブラリのラップに問題があります。JavaScript では、コードは次のようになります。

db.values("inventory").done(function(item) {
  console.log(item);
});

だから私はこれを翻訳するためにいくつかの(非常に汚い)ClojureScriptメソッドを試しました:

(defn log []
  (console/log "working?"))

(defn stock []
  (#(.done % log) (.values db "inventory")))

(defn stock []
  (js* "db.values('inventory').done(function(item) {
    console.log(item);
  })"))

しかし、これらのどちらも機能しませんでした。エラー メッセージは常に次のようなものです: db.values(...).done is not a function

JS コールバックをカバーするためにここで使用できるプロトコル拡張機能 (またはその他のもの) はありますか? それ以外の場合、 goog.async.Deferred は何らかの方法でコールバックを再度インターセプトできますか?

4

1 に答える 1