IcedCoffeeScript é um superconjunto relativamente novo de CoffeeScript que adiciona 2 novas palavras-chave: await
e defer
. O Iced vem com um intérprete substituto imediato iced
.
Em 140 caracteres ou menos: IcedCoffeescript torna a programação baseada em eventos mais fácil com uma sintaxe semelhante a procedural.
O await
bloco permite que você execute várias chamadas assíncronas em paralelo e anteceda quando seu defer
retorno de chamada for disparado.
Exemplo
Aqui estão alguns exemplos de await
e defer
em ação.
Edit: Eu sinto que meu exemplo anterior não conseguiu mostrar o quadro geral. Aqui está um exemplo muito mais sujo de adiamento com IcedCoffeeScript
IcedCoffeeScript
search = (keyword, cb) ->
host = "http://search.twitter.com/"
url = "#{host}/search.json?q=#{keyword}&callback=?"
await
$.getJSON url, defer json
logSearch keyword, defer success
cb json.results
Equivalente de CoffeeScript
search = (keyword, cb) ->
host = "http://search.twitter.com/"
url = "#{host}/search.json?q=#{keyword}&callback=?"
deferred = 0
json = null
success = null
next = ->
cb json.results
defer = (next) ->
next() if ++deferred is 2
$.getJSON url, (_json) ->
json = _json
defer()
logSearch url, (_success) ->
success = _success
defer()
Fonte: nodewebdesign.com