In context of JS this kind of promisified async code is intuitive and this pattern is quite common in various projects and libraries, but the solution in C-like pseudocode of course looks more readable for general programming public.
I agree, this seems incredibly readable to me, though I work in TypeScript / JavaScript all day and know the language and its patterns very well.