所以我想知道为什么这不能按预期工作:
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
没有得到适当的咖喱?
答案 0 :(得分:-1)
.then(cb)
是签名,而不是.then(data)
。
您需要传递一个将数据作为参数的回调:
.then(function(data){ //use data here });