2017-04-13 2 views
0

Die getan Funktion verwendet, um eine Kette von Versprechen zu beenden, wie:Bedeutung der getan Funktion kriskowal des q

foo() 
.then(function() { 
    return "bar"; 
}) 
.done(); 

Vom Projekt Link: https://github.com/kriskowal/q:

Wenn Sie bis zum Ende erhalten eine Kette von Versprechen, sollten Sie entweder das letzte Versprechen zurückgeben oder die Kette beenden.

Was genau bedeutet "die Kette beenden"? Was sind die Auswirkungen?

Antwort

1

Diese Seite hat eine große Erklärung

http://www.mattgreer.org/articles/promises-in-wicked-detail/

Hier wird der Text unter dem Thema: done() zur Rettung

done() aufgerufen werden kann, wann immer dann kann. Die Hauptunterschiede sind gibt keine Zusage zurück, und jede nicht behandelte Ausnahme innerhalb von done() wird nicht von der Verheißungsimplementierung erfasst. Mit anderen Worten, done() stellt dar, wenn die gesamte Versprechungskette vollständig aufgelöst wurde.

Und das Codebeispiel, das im Beispiel der Site verwendet wird.

getSomeJson().done(function(json) { 
    // when this throws, it won't be swallowed 
    var obj = JSON.parse(json); 
    console.log(obj); 
}); 

Weiterführende Literatur von Github des q https://github.com/kriskowal/q/wiki/API-Reference#promisedoneonfulfilled-onrejected-onprogress