首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vows.js - this.callback返回到主题与vow的参数数量

Vows.js - this.callback返回到主题与vow的参数数量
EN

Stack Overflow用户
提问于 2011-09-03 20:25:07
回答 2查看 488关注 0票数 2

来自vows站点:“当调用this.callback时,它将接收到的参数一个接一个地传递给测试函数,就好像这些值是由主题函数本身返回的一样。”换句话说,如果我们使用请求库来处理http请求,那么我们的主题和誓言可能如下所示:

代码语言:javascript
复制
'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"

但是,串在一起的主题似乎遵循不同的规则。他们似乎只传递了一个论点。这里有一个来自誓言网站的例子:

代码语言:javascript
复制
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)这样的arugments,而是(stat)。

有人知道为什么会这样吗?

EN

回答 2

Stack Overflow用户

发布于 2012-03-02 04:01:19

根据我的经验,在调用子主题时,Vows会省略err参数。

这可能解决了要求嵌套主题接受每个额外父级的每个err参数的问题。你不会想要这种情况的:

代码语言:javascript
复制
topic: (err, topic1, err, topic2, err, topic3)

相反,只要使用无错误的参数即可。

代码语言:javascript
复制
topic: (topic1, topic2, topic3)

这有点令人困惑,因为Vows会自动截获非空的err参数,并且无法通过测试。所以无论如何都不能使用err参数。

票数 1
EN

Stack Overflow用户

发布于 2013-08-02 11:58:06

所以无论如何你都不能使用

参数。

誓言是如何确定这个论点是错误的。

是按名字写的吗?或者总是null- first -参数,这在不将err作为第一个参数返回的情况下可能不起作用?

谢谢,

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7293099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档