我正在通过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