bridge from streams to promises