Ich mache zum ersten Mal eine ziemlich einfache Meteor-App, die alle Git-Probleme von einem bestimmten Repo abfragen soll. Nachdem es eine Liste von Problemen aus der Github API erhalten hat, besteht die Idee darin, eine Sammlung von Aufgaben aus diesen Problemen zu erstellen. Jedes Mal, wenn ich versuche, die Liste der aktuellen Aufgaben zur Abfrage erhalte ich:Das Holen von Gegenständen aus einer Meteor-Sammlung auf dem Server wirft "Kann nicht ohne Faser warten"
.../.meteor/tools/c2a0453c51/lib/node_modules/fibers/future.js:83
W20140418-17:00:43.872(-7)? (STDERR) throw new Error('Can\'t wait without a fiber');
W20140418-17:00:43.872(-7)? (STDERR) ^
W20140418-17:00:43.889(-7)? (STDERR) Error: Can't wait without a fiber
W20140418-17:00:43.889(-7)? (STDERR) at Function.wait
(.../.meteor/tools/c2a0453c51/lib/node_modules/fibers/future.js:83:9)
W20140418-17:00:43.890(-7)? (STDERR) at Object.Future.wait
(.../.meteor/tools/c2a0453c51/lib/node_modules/fibers/future.js:325:10)
W20140418-17:00:43.890(-7)? (STDERR) at _.extend._nextObject (packages/mongo-
livedata/mongo_driver.js:805)
W20140418-17:00:43.890(-7)? (STDERR) at _.extend.forEach (packages/mongo-livedata/mongo_driver.js:836)
W20140418-17:00:43.890(-7)? (STDERR) at Cursor.(anonymous function) [as forEach] (packages/mongo-
livedata/mongo_driver.js:695)
W20140418-17:00:43.890(-7)? (STDERR) at app/server/publish.js:51:33
W20140418-17:00:43.890(-7)? (STDERR) at Array.forEach (native)
W20140418-17:00:43.891(-7)? (STDERR) at app/server/publish.js:49:19
W20140418-17:00:43.891(-7)? (STDERR) at
...packages/npm/.build/npm/node_modules/github/api/v3.0.0/issues.js:116:17
W20140418-17:00:43.891(-7)? (STDERR) at IncomingMessage.<anonymous>
(...packages/npm/.build/npm/node_modules/github/index.js:756:21)
Mein erster Gedanke war, dass ich einen Rückruf irgendwo wurde mit, wenn ich angeblich eine Knoten-Faser zu verwenden, aber der Code scheint relativ einfach:
var repos = ['my-repo', 'my-repo-1',];
var pollGit = function() {
repos.forEach(function(repo) {
github.issues.repoIssues({
user: 'user',
repo: repo
}, function(err, stuff) {
if (err) {
throw err;
}
stuff.forEach(function (issue) {
var sel = {git_id: issue.id};
Tasks.find(sel).forEach(function (item) { //ERROR THROWN HERE
console.log('got', item);
});
});
});
});
};
Meteor.startup(function() {
pollGit();
});
Dieser Fehler tritt auf, immer wenn ich versuche, das tatsächliche Objekt nach dem Auffinden zu holen. Nur find() funktioniert gut. Was genau verursacht den Fehler?
sehen diese Antwort: http://stackoverflow.com/questions/10192938/meteor-code-must-always-run-within-a-fiber-when-calling-collection-insert- auf-s/18541825 # 18541825 – imslavko