Use transducers with promises