Skip to content

AsyncIterator API for Result consumption #2

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 13 commits into from

Conversation

bigmontz
Copy link
Owner

@bigmontz bigmontz commented Aug 4, 2021

The current driver implementation has only two options for record consumption, the default async/promise api and the reactive api.

In the async side, there is no simple way to interact over the results before consuming all the data stream and back-pressure the consumption. Meanwhile in the reactive, the back-pressure is implemented but this api usage depends on the knowledge of reactive programming and RxJS. Another issue with our current reactive implementation is not having the way to configure the back-pressure or pause the stream consumption.

The introduction of the Async Iterator is part of a group of improvements to make the driver more idiomatic and memory efficient.

@bigmontz bigmontz force-pushed the 4.4-async-iterable branch from 09a5c7a to e26bab0 Compare August 4, 2021 16:30
Comment on lines +1315 to +1325
const session = driver.session()
try {
const result = session.run('UNWIND RANGE(0, 10) AS x RETURN x')
const xs = []
for await (const record of result) {
xs.push(record.get('x').toInt())
}
expect(xs).toEqual([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
} finally {
await session.close()
}
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Usage example

@bigmontz bigmontz force-pushed the 4.4-introducing-lerna branch 2 times, most recently from 78ef05c to d929ea7 Compare October 5, 2021 16:18
@bigmontz
Copy link
Owner Author

Replace by neo4j#831

@bigmontz bigmontz closed this Dec 28, 2021
bigmontz pushed a commit that referenced this pull request May 17, 2023
Revert changes in the `userAgent`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant