我想要做這樣的事情。在生成器(迭代器)函數中只返回一定的收益
function* iterateRecord() {
const db = yield MongoClient.connect('');
const collection = db.collection('');
const query = {}
const cursor = collection.find(query);
while (yield cursor.hasNext()) {
const bsonObject = yield cursor.next();
}
}
for(record of iterateRecord())
{
//do stuff
}
現在,您可以看到這將無法正常工作,db的產量將是for的第一次迭代。所以我想要做的只是在cursor.next處返回yield。
這可能嗎?我已經嘗試了一些東西,但我總是得到不屬於迭代的多重收益。
感謝
請看看['yield'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/yield)在做什麼。它暫停功能並返回值。 –
是的,我瞭解收益率在做什麼。我在db和hasNext中產出的原因是我不想處理promise或callbacks。 – Pintac
你可能想看看[這個答案](http://stackoverflow.com/a/29281361/1048572) – Bergi