如何推迟Meteor参数的功能?

时间:2017-02-10 10:03:30

标签: javascript asynchronous meteor

我知道Meteor.defer()并希望在Web服务响应中使用它,因为计算可以在发回响应后完成。

但是我的函数需要一个参数,而Meteor.defer()只接收一个函数名,没有参数。

我从underscore.js尝试_defer,但由于这是服务器端代码,因此我收到错误消息,告知Meteor代码应始终在光纤内运行。

我有什么选择?

2 个答案:

答案 0 :(得分:3)

您可以使用.bind预先为函数提供参数:

function test(a, b) {
  console.log(a, b);
}

Meteor.methods({
  test() {
    const testWithParam12 = test.bind(undefined, 1, 2);
    Meteor.defer(testWithParam12);
  }
});

答案 1 :(得分:2)

只需将匿名函数传递给Meteor.defer

var a = 1;

var myFunction = function (param) { 
    //... do something 
};

Meteor.defer(function () {
    myFunction(a);
});
相关问题