2016-08-09 7 views
0

メソッドをクリックしてサーバー側で長時間実行しています ループがコレクションを反復処理します。実際には、コレクションが長くなることがありますし、私は最初のメソッド呼び出しを破るべきで、したがってfor-loopを破るべき2番目のボタンがあります。流星アプリを再起動Meteorメソッドのループブレイク

Meteor.methods({ 
    first(){ 
    let data = Data.find({}).fetch(); 
      for (let i = 0; i < data.length; ++i) { 
       let d = `${data[i].t}`; 
       mqttClient.publish("test", d); 
       Meteor._sleepForMs(data[i].duration*1000); 
      } 
    }, 
cancelFirst(){ ??//process.exit(); } 

は私がこれを処理するにはどうすればよいprocess.extit()

と良い選択ではないでしょうか?

+0

これは流星1.4を使用してシナリオイム以下http://stackoverflow.com/questions/24944316/meteor-cancelling-a-server-method-from-the-client –

答えて

0

私はあなたが望むことを達成する働くMeteor 1.4プロジェクトを作成しました。それほど単純ではない部分は、starLoopメソッド内のthis.unblock()です。

https://github.com/Bizow/meteor-method-loop-break

+0

それ文句を言わない作業の重複しています外部whileループは、canRunプロパティがtop falseに設定されている場合にも機能します –

関連する問題