2017-02-10 56 views
2

我知道Meteor.defer(),並且希望在web服務響應中使用它,因爲計算可以在發回響應之後完成。如何使用Meteor中的參數推遲函數?

但是我的功能需要一個參數,而Meteor.defer()只接收一個函數名,沒有參數。

我試圖從underscore.js_defer,但由於這是服務器端代碼,我得到一個錯誤,告訴Meteor代碼應該總是在光纖內運行。

我有什麼選擇?

回答

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); 
});