Yes. You need to promisify these functions that are asynchronous but don't return a promise already using the new Promise constructor (or a helper function that can shorten the repetitive code), there is no way around that. You'd rewrite your second example to