$ q,延期和部分申请

时间:2014-10-12 06:05:18

标签: javascript angularjs coffeescript

所以我想知道为什么这不能按预期工作:

fn = ->
   dfrd = $q.defer()
   $timeout ->
      dfrd.resolve({foo:'bar'})
    ,1000
    return dfrd.promise


displayData = (data)-> 
   console.log(data.foo)

fn().then(displayData)                  # doesn't work like that

fn().then((data)-> displayData(data))   # works if used like this - prints "bar"

那么为什么then没有得到适当的咖喱?

1 个答案:

答案 0 :(得分:-1)

.then(cb)是签名,而不是.then(data)

您需要传递一个将数据作为参数的回调:

.then(function(data){ //use data here });