You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
670 B
34 lines
670 B
4 years ago
|
'use strict';
|
||
|
|
||
|
// async function* asyncIterator() {
|
||
|
// while (true) {
|
||
|
// const value = await this.next();
|
||
|
// if (!value) {
|
||
|
// await this.close();
|
||
|
// return;
|
||
|
// }
|
||
|
|
||
|
// yield value;
|
||
|
// }
|
||
|
// }
|
||
|
|
||
|
// TODO: change this to the async generator function above
|
||
|
function asyncIterator() {
|
||
|
const cursor = this;
|
||
|
|
||
|
return {
|
||
|
next: function() {
|
||
|
return Promise.resolve()
|
||
|
.then(() => cursor.next())
|
||
|
.then(value => {
|
||
|
if (!value) {
|
||
|
return cursor.close().then(() => ({ value, done: true }));
|
||
|
}
|
||
|
return { value, done: false };
|
||
|
});
|
||
|
}
|
||
|
};
|
||
|
}
|
||
|
|
||
|
exports.asyncIterator = asyncIterator;
|