我遇到了我的流星服务器调用发布到远程URL然后返回结果的情况。但是,我的meteor客户端正在期待一个结果并且它接收一个空字符串(默认返回)。
实现此目的的正确方法是什么?
Meteor.methods({
run: function(options){
return HTTP.post(apiUrl, {
params:
{
"headers": headers
}
},
function (error, result)
{
if (error)
{
console.log("error: " + error);
}
else
{
console.log("result: " + JSON.stringify(result));
console.log(result.content);
}
})
});
在我的客户端
Meteor.call('run', '1', function(err,response) {
if(err) {
console.log(err);
return;
}else{
r = response;
console.log(JSON.stringify(r));
FileSystem.update({ _id: fileid }, { $set: {taskid:taskid} }, function (e, t) {
if (e) {
}else{
}
});
}
});
我希望在客户端上等待包含要保存到数据库(taskid)的所需数据的完整结果。
答案 0 :(得分:1)
您正在异步调用class Labo21
{
public static void main(String [] arguments){
int n;
int i;
double somme;
System.out.print("Positive number: ");
n = Clavier.lireInt(); //keyboard
if( n <= 0){
System.out.print("ERROR");
}else{
i = 2;
somme = 1;
while (n <= i){
somme = somme + 1.0 / i;
i = i + 1;
}
System.out.print("Result: " + somme);
}
}
}
。只需删除回调函数并使其变为同步,即,您将获得包含调用结果的返回值:
HTTP.post