Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用Meteor.apply和选项?_Javascript_Meteor - Fatal编程技术网

Javascript 如何使用Meteor.apply和选项?

Javascript 如何使用Meteor.apply和选项?,javascript,meteor,Javascript,Meteor,我正在使用Meteor.call方法调用服务器上的函数。这是一种工作,但似乎结果并没有完全恢复。(预计长度为250,现在返回11121,类似于此) 我正在使用asyncMeteor.call。我猜在服务器端功能完成之前,Meteor.call将返回一个结果。我尝试了同步呼叫,但我不清楚Meteor文档 因此,我尝试使用带有选项的Meteor.apply()。如何使用Meteor.apply和选项?有什么例子吗 client.js var chartData; Template.prodSelec

我正在使用Meteor.call方法调用服务器上的函数。这是一种工作,但似乎结果并没有完全恢复。(预计长度为250,现在返回11121,类似于此) 我正在使用async
Meteor.call
。我猜在服务器端功能完成之前,
Meteor.call
将返回一个结果。我尝试了同步呼叫,但我不清楚Meteor文档

因此,我尝试使用带有选项的
Meteor.apply()
。如何使用Meteor.apply和选项?有什么例子吗

client.js

var chartData;
Template.prodSelect.events({
  'click': function(e){
    e.preventDefault();
    var prodName = document.getElementById("productSelect").value;
    //console.log(prodName);
    Meteor.call('chartData', prodName,function(err,data){
      if (err)
        console.log(err);
      chartData = JSON.parse(data);
      //console.log(data);
      createChart(chartData);
    });
  }
});
尝试过这个,但出现了错误

var chartData;
Template.prodSelect.events({
  'click': function(e){
    e.preventDefault();
    var prodName = document.getElementById("productSelect").value;
    //console.log(prodName);
    Meteor.apply('chartData', prodName,{wait: true}, function(err,data){
      if (err)
        console.log(err);
      chartData = JSON.parse(data);
      //console.log(data);
      createChart(chartData);
    });
  }
});

我自己就知道了。您需要将参数作为数组传递,要指定“wait”,只需将
true
传递给函数即可。因此,在你的情况下:


Meteor.apply('chartData',[prodName],true,function(err,result){
为了不接收格式错误的方法调用错误,应该将参数作为数组传递。 除了@robut的回答:
最好还是看看你通过了哪些选项,因此我更喜欢:

Meteor.apply('addPost',[] ,{wait:true})

该方法看起来像什么?它给出了什么错误?该方法看起来像什么?您拥有的
true
引用了字段选项。而不是等待。请参阅
Meteor.apply(名称、参数、[options]、(布尔值),[asyncCallback])