Javascript async.js是否每个都有对象方法?

Javascript async.js是否每个都有对象方法?,javascript,node.js,coffeescript,mocha.js,async.js,Javascript,Node.js,Coffeescript,Mocha.js,Async.js,我有一个对象,它附带了一组函数,还有一些测试,我想对这些对象列表中的每个元素运行这些测试。因此,我在这些对象方法中进行了测试,并希望在async.each中运行它们 尝试咖啡脚本+摩卡 {format}=需要“util” 异步=需要“异步” 福班 构造函数:@bar-> 类栏扩展了Foo whoami_同步:=>@条 whoami_async:cb=>cbnull,@bar objects=[{foo:'bar'},{bar:'foo'}].map obj->new bar obj 描述“某物”

我有一个对象,它附带了一组函数,还有一些测试,我想对这些对象列表中的每个元素运行这些测试。因此,我在这些对象方法中进行了测试,并希望在async.each中运行它们

尝试咖啡脚本+摩卡 {format}=需要“util” 异步=需要“异步” 福班 构造函数:@bar-> 类栏扩展了Foo whoami_同步:=>@条 whoami_async:cb=>cbnull,@bar objects=[{foo:'bar'},{bar:'foo'}].map obj->new bar obj 描述“某物”,-> 没有,完成-> async.each对象,项-> 对象[objects.indexOfitem].whoami\u异步,完成 它“有”,完成-> res_list=[obj.whoami_对象中obj的同步] console.log格式“[obj.whoami\u对象中obj的同步]=%j”,res\u列表 如果res_list.filterelem->则完成!elem.length new Error else null 输出同步测试通过时出错 1有些东西没有: 错误:超过2000毫秒的超时时间

的第二个参数是迭代器函数,它应该有两个参数,而不是一个;当迭代器的工作完成时,应该调用第二个。例如,这是有效的:

async.each [1, 2, 3],
    ((x, next) -> console.log x; do next),
    ((err) -> console.log 'done')
如果迭代器是异步的,请将函数传递给异步操作,以便它可以在完成时调用它:

asyncOp = (x, next) ->
    console.log "checking #{x}"
    if x > 1
        next "#{x} is too big"
    else
        next null

async.each [1, 2, 3],
    ((x, next) -> asyncOp x, next),
    (err) -> console.log err

不应该是地图而不是forEach?喔,是的。在这个简短的测试用例中重写我较长的示例,我一定忘了检查那一行。objects[objects.indexOfitem]看起来要编写这个项目还有很长的路要走。您应该调用whoami\u sync方法,而不仅仅是引用它。普通方法应该用->而不是=>创建。嗯,第一个方法你是对的。不知道我为什么这样写至于第二个问题,如果我需要访问self,我不需要=>?谢谢,但是我的cb处理程序仍然不能正常工作。即:async.each objects,item,next->objects[objects.indexOfitem].whoami\u async;do next,done将始终成功,即使它的定义为:whoami_async:cb=>cb new Error。您必须给出next to whoami_async,以便它可以在完成时调用它。很好,这是可行的。把你的答案编辑成那样,我会接受的。