수색…
Meteor.call의 기초
Meteor.call(name, [arg1, arg2...], [asyncCallback])
(1) 이름 문자열
(2) 호출 할 메소드의 이름
(3) arg1, arg2 ... EJSON 가능 객체 [선택]
(4) asyncCallback 함수 [선택]
한편으로는 다음과 같이 할 수 있습니다 : ( Session 변수 또는 ReactiveVar 를 통해)
var syncCall = Meteor.call("mymethod") // Sync call
이것은 서버 측에서 다음과 같이하면됩니다.
Meteor.methods({
mymethod: function() {
let asyncToSync = Meteor.wrapAsync(asynchronousCall);
// do something with the result;
return asyncToSync;
}
});
반면에 콜백 결과를 통해 유지하려고 할 때가 있습니다.
고객 입장에서 :
Meteor.call("mymethod", argumentObjectorString, function (error, result) {
if (error) Session.set("result", error);
else Session.set("result",result);
}
Session.get("result") -> will contain the result or the error;
//Session variable come with a tracker that trigger whenever a new value is set to the session variable. \ same behavior using ReactiveVar
서버 측
Meteor.methods({
mymethod: function(ObjectorString) {
if (true) {
return true;
} else {
throw new Meteor.Error("TitleOfError", "ReasonAndMessageOfError"); // This will and up in the error parameter of the Meteor.call
}
}
});
Meteor가 클라이언트와 서버 사이에서 통신하는 다양한 방법을 제안한다는 것을 보여주는 것입니다.
세션 변수 사용
서버 측
Meteor.methods({
getData() {
return 'Hello, world!';
}
});
고객 입장에서
<template name="someData">
{{#if someData}}
<p>{{someData}}</p>
{{else}}
<p>Loading...</p>
{{/if}}
</template>
Template.someData.onCreated(function() {
Meteor.call('getData', function(err, res) {
Session.set('someData', res);
});
});
Template.someData.helpers({
someData: function() {
return Session.get('someData');
}
});
ReactiveVar 사용하기
서버 측
Meteor.methods({
getData() {
return 'Hello, world!';
}
});
고객 입장에서
<template name="someData">
{{#if someData}}
<p>{{someData}}</p>
{{else}}
<p>Loading...</p>
{{/if}}
</template>
Template.someData.onCreated(function() {
this.someData = new ReactiveVar();
Meteor.call('getData', (err, res) => {
this.someData.set(res);
});
});
Template.someData.helpers({
someData: function() {
return Template.instance().someData.get();
}
});
reactive-var
패키지가 필요합니다. 그것을 추가하려면 meteor add reactive-var
run meteor add reactive-var
실행 meteor add reactive-var
.
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow