2017-02-10 4 views
2

Я знаю о Meteor.defer() и хотел бы использовать его в ответе веб-службы, так как вычисление может быть выполнено после отправки ответа назад.Как отложить функцию с параметрами в Метеор?

Однако моей функции нужен параметр, а Meteor.defer() получает только имя функции, никаких параметров.

Я пробовал _defer от underscore.js, но так как это код на стороне сервера, я получил сообщение об ошибке, указывающее, что код метеора всегда должен работать внутри волокна.

Какие у меня варианты?

ответ

3

Вы можете использовать .bind предварительно переизбыток параметры функции:

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

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

Просто пройти анонимную функцию Meteor.defer:

var a = 1; 

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

Meteor.defer(function() { 
    myFunction(a); 
});