使用Meteor.setTimeout
:
start: function() {
Meteor.setTimeout(function() {
let data = Strategy.find({}, {limit: 5}).fetch();
for (let i = 0; i < data.length; ++i) {
mqttClient.publish("test", data[i].charge);
}
}, 1000);
}
ともwhy to use that vs vanilla setTimeout()を参照してください。変数については
EDIT:あなたはRawCollectionオブジェクトとやりたいことができ
start: function() {
let data = Strategy.find({}, {limit: 5}).fetch();
for (let i = 0; i < data.length; ++i) {
Meteor.setTimeout(function() {
mqttClient.publish("test", data[i].charge);
}, data[i].duration);
}
}
EDIT、
var rawCollection = Strategy.rawCollection();
// Number.MAX_SAFE_INTEGER should be sufficient time
var cursor = rawCollection.find({}).maxTimeMS(Number.MAX_SAFE_INTEGER);
var myData = fetchCursor(cursor);
var fetchCursor = Meteor.wrapAsync(function
fetchCursor (cursor, cb) {
cursor.each(function (err, doc) {
if (err) return cb(err);
if (!doc) return cb(null, { done: true }); // no more documents
// use doc here.
});
});
したがって、反復が完了するまでメソッドが待機するようにします。右? – sapna
各繰り返しでは、wait data [i] .duration times –