のjQueryドキュメントによるとdeferred.promise([target])
:
target が指定されている場合、deferred.promise() はメソッドをそれにアタッチし、新しいオブジェクトを作成するのではなく、このオブジェクトを返します。これは、Promise 動作を既存のオブジェクトにアタッチするのに役立ちます。
私が理解しているように、ターゲットを呼び出すpromise()
と、ターゲットの既存の promise インターフェイスを置き換える必要があります。その場合、次のログが記録されると予想されます"new done"
。
var defer = $.Deferred();
defer.done(function() {
console.log('new done')
});
defer.promise(
$.getJSON('/foo').done(function() {
console.log('old done')
})
);
しかし、私はまだターゲットの元のdone
コールバックを取得しています。(jQuery 1.8.3 を使用)
私の理解は完全に間違っていますか、それともオブジェクトのプロミスインターフェース全体を何らかの方法で置き換える方法はありますか?