2016-08-09 79 views
0

如果我點擊一個方法,並在服務器端 循環迭代通過一個集合,我有一個長時間運行taks。其實集合可以很長,我有第二個按鈕應該打破第一個方法調用,因此也是for循環。流星方法循環中斷

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

這是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

的副本,它使用以下流星1.4情景IM不會工作如果canRun屬性設置爲false,則外部while循環也可以工作 –