Check方法返回undefined

时间:2014-11-26 01:43:03

标签: javascript meteor

我已阅读文档。并研究了一些check package教程。 meteor docs,尝试再次安装检查包atmospherejs,并查看它的使用方法。但

每次我尝试类似的事情:

check("this is string",String); //return undefined

var objectTest = { some : 0 };
check(objectTest, Object); //undefined
check(objectTest.some, Number); //undefined

它始终返回undefined我不知道为什么,check函数如果我在chrome控制台上写一下它返回

function (value, pattern) {                                              // 19
  // Record that check got called, if somebody cared.                            // 20
  //                                                                             // 21
  // We use getOrNullIfOutsideFiber so that it's OK to call check()              // 22
  // from non-Fiber server contexts; the downside is that if you forget to       // 23
  // bindEnvironment on some random callback in your method/publisher,           // 24
  // it might not find the argumentChecker and you'll get an error about         // 25
  // not checking an argument that it looks like you're checking (instead        // 26
  // of just getting a "Node code must run in a Fiber" error).                   // 27
  var argChecker = currentArgumentChecker.getOrNullIfOutsideFiber();             // 28
  if (argChecker)                                                                // 29
    argChecker.checking(value);                                                  // 30
  try {                                                                          // 31
    checkSubtree(value, pattern);                                                // 32
  } catch (err) {                                                                // 33
    if ((err instanceof Match.Error) && err.path)                                // 34
      err.message += " in field " + err.path;                                    // 35
    throw err;                                                                   // 36
  }                                                                              // 37
}

所以功能它在那里,但我不知道如何使用它...你知道为什么它返回undefined? (顺便说一下我google"流星检查方法返回undefined"没有成功)

感谢您的支持。

//我是否因为某种原因使用铁路线 //我没有使用Metero.publishMeteor.methods

中的函数

1 个答案:

答案 0 :(得分:1)

check不会返回任何内容。这就是为什么它似乎总是未定义的。

如果值与模式不匹配,则抛出异常。如果值与模式匹配,那么它不会。

因此,您不必使用if (check(...)) {,而是编写如下代码:

function sample(name) {
    check(name, String);
    // code down here won't run if name is not a string
    return name.toUpperCase();
}