在订阅之前等待komposer容器中的方法调用的流星

时间:2017-11-13 07:33:27

标签: reactjs meteor containers

所以我想调用一个方法来检查组件是否应该订阅,但我尝试了很多方法而且失败了。

let container = (props, onData) => {
   Meteor.call("check", (err,res){ res return true and false
      if(res){
        const sub = Meteor.subscribe("data");
        if(sub.ready()){
           onData(null, data);
         }
      }
   });
}

但是回调中的sub.ready()总是假的,但是如果我在回调之外订阅它可以工作但是我不想订阅检查方法返回false的每个组件

1 个答案:

答案 0 :(得分:0)

我遇到过类似的问题。我的解决方法是不在回调中执行任何太多任务。请检查这些内容是否有效:

let container = (props, onData) => {
        // a simple flag
        var canSubscribe = false;

       Meteor.call("check", (err,res){ res return true and false
          if(res){
            canSubscribe = true;

          }
       });
        //moved this outside of the callback.
        if(canSubscribe){
                 const sub = Meteor.subscribe("data");
                 if(sub.ready()){
               onData(null, data);
             }
    }
}