In both JavaScript and Python, data sources return promises/futures instead of Outputs because they don’t have any dependency information attached to them.
This does though mean that you generally have to use async functions a bit more, and the style of that in both JavaScript and Python is a little outside of what’s “normal”. We’re still looking into options to make this feel a bit simpler. But the example above should help. (And we’re working on adding examples to all the API docs very soon so this is more directly at your fingertips).