Coffeescript, comment pourrais-je écrire cet exemple fonctions mis en attente, en particulier la mise en boucle?

StackOverflow https://stackoverflow.com/questions/4227367

  •  26-09-2019
  •  | 
  •  

Question

Je suis en train d'obtenir quelques exemples sous ma ceinture de la façon dont vous feriez quelque chose différemment en CoffeeScript JavaScript. Dans cet exemple de fonctions qui font la queue, je suis confus sur la façon dont vous le feriez dans cette poignée CoffeeScript

    wrapFunction = (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())();   
    }

Surtout comment pourrais-je réécrire cela en CoffeeScript?

while (Array.length > 0) {
    (Array.shift())(); 
Était-ce utile?

La solution

f1 = (completeCallback) ->
  console.log('Waiting...')
  completeCallback()

funcs = [ f1, f2, f3 ]

next = ->
  if funcs.length > 0
    k = funcs.shift()
    k(next)

next()

Autres conseils

fun1 = -> alert 'Hello Fun1'
fun2 = -> alert 'Hello Fun2'

funqueue = [fun1, fun2]

el() for el in funqueue
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top