Promise composition can help achieve a lot of modularity in asynchronous code, which leads to better maintainability of it. Kashyap goes through a pattern explaining how programmers can build larger abstractions starting with very small ones.
This is more or less a compressed version of my blog post on the topic. Check it for more links and resources to dig deeper on this topic.