javascript - 无法将函数传递给调用(方法)

标签 javascript meteor functional-programming

我试图将一个函数作为参数传递,但由于某种原因,这不起作用。在调试时我遇到了这种情况:

使用服务器/twitter.js:

Meteor.methods({
  mytweets: function(callback){
    //someday I'll asynchronously get some tweets, then callback.
    console.log("server got callback=",callback)
  }
})

这个有效:

在/client/views/twitter.js 中:

Template.twitter.created = function(){
  Meteor.call("mytweets",123);
}

这正确地记录了 server got callback=123 并且此时一切正常。但是以下将不起作用:

这行不通。为什么?

Meteor.call('mytweets', function(){
  return 123;
})

传递函数时,输出为server got callback= undefined

知道为什么吗?

注意:我是 meteor 和 javascript 的新手,所以我真的不知道(还)这是 javascript 还是与 meteor 相关的问题。我会标记两者以防万一。

提前致谢!!

最佳答案

根据 Meteor.call文档中,Meteor.call 期望 EJSON-able Objects 作为参数,最后是回调,它不会传递给方法本身。这就是为什么 mytweets 没有收到你的回调作为参数,但 123 有。

但是,如果 mytweets 应该是异步的(服务器端),您将不得不使用 Meteor 插件。查看meteor-sync-methods为此目的。

关于javascript - 无法将函数传递给调用(方法),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28835229/

相关文章:

javascript - 使用 Javascript 从用户提交的 Youtube URL 收集 ID(对于 Meteor 项目)

javascript - 单子(monad)组合练习错误

javascript - 在 Ajax.success 上调用另一个脚本的函数

javascript - 在不破坏单词的情况下在 Javascript 中分块/拆分字符串

javascript - 没有 MongoDB 的 Meteor Mysql 和 Session

javascript - 如何从头开始用 Javascript 编写异步 Map 函数?

java - Kotlin:用 Pair<Int, Int> 调用 (Int, Int) -> Int 的惯用方式?

javascript - 使用 JavaScript 重定向到 (currenturl)/example.html onclick

javascript - Testcafe - 处理视频

ios - Meteor run ios - 根本不工作