Ich versuche, ein paar Beispiele zu bekommen, wie Sie in CoffeeScript zu JavaScript etwas anders machen würden. In diesem Beispiel von Funktionen Warteschlangen Ich bin verwirrt, wie Sie dieseCoffeescript, wie würde ich diese eingereihten Funktionen Beispiel schreiben, vor allem die Schleife?
in Coffeescript Sie behandeln würdenwrapFunction = (fn, context, params) ->
return ->
fn.apply(context, params)
sayStuff = (str) ->
alert(str)
fun1 = wrapFunction(sayStuff, this, ['Hello Fun1'])
fun2 = wrapFunction(sayStuff, this, ['Hello Fun2'])
funqueue = []
funqueue.push(fun1)
funqueue.push(fun2)
while (funqueue.length > 0) {
(funqueue.shift())();
}
Gerade wie würde ich dieses umschreiben in Coffeescript?
while (Array.length > 0) {
(Array.shift())();
Also muss ich nur eine komplette Callback Funktion schreiben? – Handloomweaver
Edited. 'next' übergibt sich als Argument in jede eingereihte Funktion Jede eingereihte Funktion sollte sicherstellen, dass das darin übergebene Argument aufgerufen wird (der formale Parametername in 'f1' war' completeCallback'), damit die nächste in der Warteschlange stehende Funktion aufgerufen wird. – yfeldblum
Dies ist notwendig, weil 'f1' kann einen AJAX-Aufruf erstellen und sofort zurückgeben, währenddessen er in den AJAX-Aufruf eine 'Erfolgs'-Handler-Funktion übergibt, die der Browser zu einem späteren Zeitpunkt aufrufen wird Es wird so lange gehalten, bis die success-handler-Funktion aufgerufen wird und ebenfalls abgeschlossen ist, und zwar nicht nur, bis 'f1' zurückgegeben wurde (dies ist nach Ihrer Beschreibung des Problems). – yfeldblum