我正在通過Meteor.call()
函數從我的客戶端代碼調用服務器方法。如何從客戶端的Meteor.call方法返回結果?
但是當我試圖將回調函數的返回值傳遞給onCreated
函數中的變量時,我得到一個未定義的值。
望着這個解決方案的結果仍然只是回調的範圍內,可供選擇:
https://stackoverflow.com/a/31661065/1829251
此外,當我閱讀文檔的流星稱之爲解釋說,該方法是異步這解釋該函數的返回值不能分配給一個變量:
https://docs.meteor.com/api/methods.html#Meteor-call
問題:
如何從客戶端的Meteor.call方法返回結果?的客戶端代碼
代碼片段:
import { Template } from 'meteor/templating';
import { Meteor } from 'meteor/meteor';
import { Datasets } from '../../../../api/datasets/datasets.js';
import { Constants } from '../../../../startup/constants.js';
import './rollup-history.html';
import './rollup-history.scss';
Template.rollup_history.onCreated(function() {
this.historyDays = 7;
this.rollupHistoryMECTitles =() => {
let mecObjects = [];
// Query the MEC calendar dates from AppConfiguration collection
let method = Constants.Methods.getAppConfigCollectionFromKeyDateSorted;
mecObjects = Meteor.call(method, Constants.AppConfigKeys.meccalendarInitialValues, this.historyDays, (error, result) => {
if(error){
console.log("Error retrieving MEC Dates" + error);
}
//Logging values here shows the values as expected
console.log("MEC Dates in View" + JSON.stringify(result));
return result;
}
);
//logging value here shows undefined value
console.log("mec objects: " + JSON.stringify(mecObjects));
return mecObjects;
};
});
Template.rollup_history.helpers({
mecHeaderColumns: function() {
return Template.instance().rollupHistoryMECTitles();
},
});
而是你嘗試創建一個模板反應變種。將'Meteor.call'的函數內的變量賦值爲'Template.instance()。x.set(result)' –
你究竟在做什麼?從onCreated()返回一個值對你來說意味着什麼?即使沒有方法調用,這對我來說也沒有意義。 – zim