Abbrechen eines Latenten Versprechen in jQuery

Wie kann ich das rückgängig machen ein Versprechen, ohne zu entfernen das element aus dem DOM?

fiddle

Lief ich diesen code:

$("#box")
  .delay(2000)
  .show("slow")
  .delay(2000)
  .promise()                            
  .then(function(){log("Done");});

Nach diesem, gibt es eine Möglichkeit zu stornieren, die Versprechen? Beide clearQueue() und stop(true) hat nicht funktioniert, weil es nicht eine animation, die ich versuche zu stornieren. Ich sah, dass remove() sollte es tun ... aber ich will nur zu stoppen, die Versprechen, die Sie nicht entfernen Sie das gesamte element.

Wenn Sie nur das promise-Objekt (und kein Zugriff auf die ursprünglichen latenten), dann sollte es unmöglich sein, das zu tun. Die Idee, ein Versprechen ist in der Lage zu hören, um die latente aufgelöst wird, oder ablehnen, ohne die resolve/ablehnen-Funktionalität. Was Sie tun können, ist schaffen ein Versprechen wrapper, der macht die ursprünglichen Versprechen functons, aber alle callbacks verknüpft mit einer wrapping-Funktion, die überwacht, zu einer Art fahne, um zu vermeiden Auslösung des Rückrufs, wenn die latente gekennzeichnet ist abgebrochen.
fast, dass Sie eigentlich nur möchten, erstellen Sie eine latente und manuell ablehnen oder auflösen, wie Sie sehen, passen.

InformationsquelleAutor ripper234 | 2012-03-07

Schreibe einen Kommentar