.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 は何らかの方法でコールバックを再度インターセプトできますか?