Javascript $q,延期和部分申请
所以我想知道为什么这不能像预期的那样起作用:Javascript $q,延期和部分申请,javascript,angularjs,coffeescript,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 l
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"
那么为什么然后没有得到正确的咖喱呢?。然后(cb)
是签名,而不是。然后(数据)
您需要传递一个回调,以获取作为参数的数据:
.then(函数(数据){//use data here})
这就是我要说的:为什么不能使用它:。那么(displayData)
其中displayData
是一个回调需要签名的函数?它应该发射它并传递任何带着承诺返回的论点,对吗?我真的不知道你贴在那里的胡说八道是什么。但是。然后
需要一个函数。你正在经过一个物体,你在说什么var fn=function(arg){console.log(arg)};foo.then(fn)
你在哪里看到一个物体?你说的“咖喱”是什么意思?从CS的角度来看,没有什么不同。你能提供一个演示来说明什么不起作用吗?你知道吗?事实上它确实有效,我的实际代码中可能有错误:(