【发布时间】:2011-09-03 12:25:06
【问题描述】:
来自誓言网站:“当 this.callback 被调用时,它会将接收到的参数一一传递给测试函数,就好像这些值是由主题函数本身返回的一样。”换句话说,如果我们使用请求库来处理我们的 http 请求,我们的主题和誓言可能如下所示:
'When I make a valid request':
topic: ->
request
uri: someURL
method: "GET"
, @callback
return undefined # necessary because I'm using coffeescript
"It should respond with a 200":
(err, resp, body) ->
assert.equal resp.statusCode, "200"
但串在一起的主题似乎按照不同的规则发挥作用。他们似乎只传递一个论点。这是来自 Vows 网站的示例:
topic: function () {
fs.stat('~/FILE', this.callback);
},
'after a successful `fs.stat`': {
topic: function (stat) {
fs.open('~/FILE', "r", stat.mode, this.callback);}, etc
因此,第二个主题没有得到 (err, stat) 之类的参数,而是得到 (stat)。
有人知道为什么会这样吗?
【问题讨论】:
-
我想知道这是否只是他们的错误。即他们不检查他们提供的示例的一致性。您是否使用自己的代码尝试过类似的事情以确认?
-
是的,我就是这样发现的。当我试图从回调中访问第二个参数时,我的代码一直在爆炸。