I wrote a module that provides something similar to this using ES6 generators (which are already widely supported), but also supports callbacks in addition to promises. This way, you can make calls to existing APIs without having to wrap them to return Promises.
https://github.com/mappum/watt
Since it uses generators, you use 'yield' where you would have used 'await'.