Nein, es gibt keiner. Es war discussed, aber die Spezifikation ist minimal. Es enthält nicht eine Reihe anderer Funktionen. Es ist so konzipiert, dass es gut mit Bibliotheksversprechen interagiert und einfache Funktionalität bietet.
Here is a correct polyfill of that proposal originally made by StefPanner.
Darüber hinaus stimme ich nicht mit der
aktuellen
jetzt gelöschten Antworten fügen sie selbst, weil sie alle tun es falsch (als eine aufzählbare Eigenschaft - kein Spaß). Auch wenn wir ignorieren, was es mit den Rückgabewerten und dem Fehlerstatus des zurückgegebenen Versprechens macht. Der beabsichtigte Weg, native Versprechungen zu erweitern, ist , die sie unterteilen, leider unterstützen keine Browser dies noch, also müssen wir warten.
Statt mit nativen Prototypen von Unordnung, sollten wir ein anderes Muster verwenden:
openDb().then(foo).then(bar).finally(close).then(more);
ist anfällig für uns zu vergessen der Nähe zu nennen, auch wenn wir es 100-mal in unserer App öffnen, vergessen sie sogar schließen Einmal kann es noch verheerend sein. Auf der anderen Seite - wir haben die Entsorger Muster verwenden können, die einige Versprechen Bibliotheken in ihnen selbst gebaut bieten:
openDb(function(db){
return foo(db).then(bar);// chain here
}).then(more);
Grundsätzlich - dieses Muster bedeutet stattdessen openDB
Rückkehr ein Versprechen mit - wir haben es, eine Funktion und Rückkehr ein Versprechen, wenn die Funktion ausgeführt wird, wenn sie eine Zusage zurückgibt, warten wir darauf, dass dieses Versprechen aufgelöst wird. Es sieht so etwas wie:
function openDb(withDb){
return justOpenWithoutCleanUp().
then(withDb).
then(clean, function(e){ clean(); throw e; }); // note the rethrow
}
ich jetzt sehen, nur gibt es dann und Fangmethoden https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise Also wahrscheinlich keine Möglichkeit (oder Prototyp zu erweitern, um dies zu machen) –
jQuery.Deferred(). Dann, wie mit mehreren Parametern zu lösen http://StackOverflow.com/Questions/24703887/Jquery-defered-then-how-to-resolve -mit-mehreren-Parametern1 – zavg
Als Benjamin antwortete - nein. Deshalb gehe ich normalerweise mit https://github.com/petkaantonov/bluebird im Browser und es ist beitreten, alle und alle anderen Methoden. Natürlich ist es nicht nativ, aber es ist eine Lösung für viele vielversprechende Probleme plus Promistification. – Jarema