标签: iced-coffeescript

IcedCoffeeScript或jQuery延迟了

最近在开发Backbone.JS/jQuery/CoffeeScript项目时,我发现自己陷入了一堆回调和时间问题.我需要等待一些事情才能完成,然后发现自己陷入了一堆嵌套的回调......这让人感到困惑和难以调试.然后我找到了2个可能的解决方案jQuery deferredIcedCoffeeScript

IcedCoffeeScript看起来很简单,只需添加await&defer.但是,我不知道它会留下来吗?StackOverflow上只有2个问题吗?与CoffeeScript相比,没有太多谈论它

另一件事是两种方法之间的区别是什么,它们似乎大致相同?除了在IcedCoffeeScript中,它看起来更像是程序代码,并且在jQuery延迟,它并没有解决我的混乱回调

coffeescript jquery-deferred iced-coffeescript

14
推荐指数
2
解决办法
2817
查看次数

带有多个回调的冰咖啡脚本

当我刷新多个数据源时,我正在使用Iced coffescript和upshot js.刷新方法有两个回调一个用于成功,一个用于错误,我想等待每个调用进行回调.

我无法看到如何使用idced coffescript执行此操作而无需添加其他功能.我的问题是 - 有更优雅的方式,我可以推迟多个回调之一?

这是我目前的代码:

refreshMe = (key, value, result) =>
    value.refresh(
    (success)=>
            result success
    ,
    (fail, reason, error)=>
        result undefined, fail
    )
@refresh = () =>                
success={}
fail={}
await
    for key, value of @dataSources
    refreshMe key, value, defer success[key], fail[key]
Run Code Online (Sandbox Code Playgroud)

coffeescript iced-coffeescript

10
推荐指数
1
解决办法
1665
查看次数

如何使用IcedCoffeeScript正确处理错误?

node.js中的常见做法是将错误消息作为回调函数的第一个参数返回.纯JS(Promise,Step,seq等)中有许多解决这个问题的方法,但它们似乎都不能与ICS集成.什么是正确的解决方案来处理错误而不会失去很多可读性?

例如:

# makes code hard to read and encourage duplication
await socket.get 'image id', defer err, id
if err # ...
await Image.findById id, defer err, image
if err # ...
await check_permissions user, image, defer err, permitted
if err # ...


# will only handle the last error
await  
  socket.get 'image id', defer err, id
  Image.findById id, defer err, image
  check_permissions user, image, defer err, permitted

if err  # ...


# ugly, makes code more rigid
# no …
Run Code Online (Sandbox Code Playgroud)

error-handling node.js coffeescript iced-coffeescript

8
推荐指数
1
解决办法
1114
查看次数

尝试捕获并不总是在冰咖啡脚本中工作

我用try catch块了iced coffee script.我调用不存在fake的对象不存在的方法a并期望捕获错误.

db = require '../../call/db.iced'
try
    await db.find "79", defer c, d
    a.fake()
catch error
    console.log "error catched"
    console.log error
Run Code Online (Sandbox Code Playgroud)

但是db.find在控制台中调用函数a.fake()后抛出错误,但是它没有try catch按预期使用块.

如果我注释掉字符串await db.find "79", defer c, d......

db = require '../../call/db.iced'
    try
        # await db.find "79", defer c, d ############## commented out
        a.fake()
    catch error
        console.log "error catched"
        console.log error
Run Code Online (Sandbox Code Playgroud)

...它按预期工作,并且错误被捕获.

我尝试await db.find "79", defer c, d通过其他简单的异步函数calles 更改字符串,但它们工作正常,错误很好.

有趣的是功能db.find …

error-handling iced-coffeescript

5
推荐指数
1
解决办法
344
查看次数