Używam modułu ramowego Koa.js i Mongoose.js.forEach przy użyciu generatorów w pliku Node.js
Normalnie, aby uzyskać wynik z MongoDB kod I tak:
var res = yield db.collection.findOne({id: 'my-id-here'}).exec();
Ale muszę wykonać tę linię dla każdego elementu tablicy o nazwie „przedmioty”.
items.forEach(function(item) {
var res = yield db.collection.findOne({id: item.id}).exec();
console.log(res) // undefined
});
Ale ten kod nie działa, ponieważ wydajność jest w funkcji. Jeśli napiszę to:
items.forEach(function *(item) {
var res = yield db.collection.findOne({id: item.id}).exec();
console.log(res) // undefined
});
Nie otrzymam również wyniku w zmiennej res. Próbowałem użyć modułu "generator-foreach", ale to nie działało w ten sposób.
Wiem, że to jest mój brak wiedzy na temat znajomości języków Node.js. Ale czy możecie mi pomóc znaleźć sposób, jak to zrobić?
Co dokładnie wypróbowałeś z 'generator-foreach'? – loganfsmyth
Właśnie zastąpiłem dlaEe z generatorem foreach. Reszta kodu jest taka sama. Czy możesz zmodyfikować mój fragment kodu i upewnić się, że działa? –