wie man setTimeout mit Parametern von Coffeescript schreibt

Lesezeit: 2 Minuten

Bitte sagen Sie mir, wie man Javascript unten in Coffeescript schreibt.

setTimeout(function(){
    something(param);
}, 1000);

  • wie können wir .call(‘hello’) hinzufügen

    – Atul

    21. Dezember 2016 um 11:35 Uhr

Ich denke, es ist eine nützliche Konvention, dass Callbacks als letztes Argument einer Funktion kommen. Dies ist beispielsweise bei der Node.js-API normalerweise der Fall. Also in diesem Sinne:

delay = (ms, func) -> setTimeout func, ms

delay 1000, -> something param

Zugegeben, dies fügt jedem den Overhead eines zusätzlichen Funktionsaufrufs hinzu setTimeout du machst; Bei den heutigen JS-Interpretern ist der Leistungsnachteil jedoch unbedeutend, es sei denn, Sie tun dies tausende Male pro Sekunde. (Und was machst du überhaupt, um Tausende von Timeouts pro Sekunde einzustellen?)

Ein einfacherer Ansatz besteht natürlich darin, Ihren Rückruf einfach zu benennen, was sowieso zu besser lesbarem Code führt (jashkenas ist ein großer Fan dieser Redewendung):

callback = -> something param
setTimeout callback, 1000

  • Großartig, es sei denn, Sie benötigen verschachtelte Rückrufe

    – Steven Pribilinskiy

    24. Dezember 2014 um 13:12 Uhr


Benutzer-Avatar
Nikolaus

setTimeout ( ->
  something param
), 1000

Die Klammern sind optional, aber die Zeile mit einem Komma zu beginnen, erschien mir unordentlich.

  • Nehmen Sie die Eltern heraus und trinken Sie eine Tasse Kaffee ,~)

    – Billy Mond

    27. Juni 2012 um 1:23 Uhr

  • Kompiliert nicht mit den Klammern für mich. Ich musste sie entfernen, die Zeile mit einem Komma beginnen, und es funktioniert wie ein Zauber.

    – Jeremy Thille

    7. August 2014 um 13:29 Uhr

  • Mit Klammern können Sie dies auch in einer Zeile tun.

    Benutzer1544337

    13. Mai 2015 um 20:47 Uhr

  • @JeremyThille beachten Sie, dass das Leerzeichen dazwischen liegt setTimeout und der öffnende Elternteil ist wichtig. Das Leerzeichen dort bedeutet, dass die Klammern den Abschluss als ersten Parameter für setTimeout umgeben; wenn es direkt nach dem t wäre, würde coffescript erwarten, dass die Klammern beide Parameter einschließen.

    – Jankins

    2. September 2015 um 21:12 Uhr

Benutzer-Avatar
Dirk Smaverson

setTimeout -> 
  something param
, 1000

  • Dies ist am besten, wenn Sie nur eine anonyme Funktion verwenden möchten.

    – Alex K

    12. Dezember 2013 um 21:39 Uhr

  • auch für eine benannte Funktion, setTimeout namedFunc, 5000

    – Dirk Smaverson

    13. Dezember 2013 um 1:26 Uhr

  • Beachten Sie, dass Leerzeichen wichtig sind. Der Anruf muss genau wie oben beabstandet sein. Wenn something param ist auf der gleichen Linie wie setTimeoutes wird anders geparst.

    – henrebotha

    1. Februar 2017 um 10:18 Uhr

Benutzer-Avatar
Maerik

Dies führt zu einer ungefähr äquivalenten Übersetzung (danke @Joel Mueller):

setTimeout (-> something param), 1000

Beachten Sie, dass dies keine exakte Übersetzung ist, da die anonyme Funktion das Ergebnis des Aufrufs zurückgibt something(param) statt undefined, wie in Ihrem Snippet.

Ich finde dies die beste Methode, um dasselbe zu tun,

setTimeout (-> alert "hi"), 1000

andere Option:

setTimeout(
    -> something param
    1000
)

1299150cookie-checkwie man setTimeout mit Parametern von Coffeescript schreibt

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy