DOMから要素を削除せずにプロミスをキャンセルするにはどうすればよいですか? jQueryで遅延プロミスをキャンセルする
が、私はこのコードを実行しました。この後$("#box")
.delay(2000)
.show("slow")
.delay(2000)
.promise()
.then(function(){log("Done");});
を、約束をキャンセルする方法はありますか? clearQueue()
とstop(true)
は、私が取り消そうとしているアニメーションではないため動作しませんでした。私はそれがremove()
それを行う必要があることを見た...しかし、私は約束を停止し、全体の要素を削除しないようにしたい。
プロミスオブジェクトしか持たず(元のオブジェクトへのアクセス権がない)、それを行うことは不可能です。約束のアイデアは、解決/拒否機能なしに、解決済みまたは拒絶済みの聴取を行うことができるようにすることです。あなたができることは、元の約束の関数を公開する約束ラッパーを作成することですが、すべてのコールバックは、延期が取り消されているとフラグが立てられた場合にコールバックを引き起こさないような何らかのフラグを待ち受けるラッピング関数にバインドされます。 –
ほとんどの場合、遅延したものを作成して手動で拒否したり、適切に見えるように解決したいだけです。 –