Meteor.call()
関数を使用してクライアントサイドコードからサーバーメソッドを呼び出しています。クライアントのMeteor.callメソッドから結果を返す方法は?
しかしコールバック関数の戻り値をonCreated
関数内のvarに渡そうとすると、定義されていない値が返されます。それは方法があることを説明し、非同期であることを説明流星は、呼び出しのために、私はドキュメントを読んだときも
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