我知道Meteor.defer()
并希望在Web服务响应中使用它,因为计算可以在发回响应后完成。
但是我的函数需要一个参数,而Meteor.defer()
只接收一个函数名,没有参数。
我从underscore.js尝试_defer
,但由于这是服务器端代码,因此我收到错误消息,告知Meteor代码应始终在光纤内运行。
我有什么选择?
答案 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);
});