Wie mache ich eine Callback-Kette mit q?

8

Ich habe einige Probleme zu verstehen, wie man "q" (https://github.com/kriskowal/q) eine Versprechen Bibliothek für Javascript:

verwendet %Vor%

das gibt nur undefined ...

zurück     
bodokaiser 17.09.2012, 14:36
quelle

2 Antworten

9

Der Grund, warum Sie "undefiniert" erhalten, ist, dass die Funktionen, die Sie verketten, nichts zurückgeben:

%Vor%

delayOne ruft setTimeout auf und gibt nichts zurück ( undefined ).

Um Ihr Ziel zu erreichen, müssen Sie Q.defer :

verwenden %Vor%

Ссылка

    
wroniasty 17.09.2012, 15:04
quelle
12

Wie Sie vielleicht bemerkt haben, müssen Sie ein Versprechen von jeder dieser Funktionen zurückgeben, aber Sie sollten auch alle Callback-orientierten APIs (wie setTimeout ) so weit wie möglich abstrahieren und APIs verwenden, die stattdessen Versprechen zurückgeben.

Im Fall von setTimeout liefert Q bereits Q.delay(ms) , was eine Zusage zurückgibt, die nach der angegebenen Anzahl von Millisekunden aufgelöst wird, perfekt um setTimeout zu ersetzen:

%Vor%

(Hinweis: end wurde durch done ersetzt) ​​

    
tlrobinson 24.01.2013 09:38
quelle