Similar to the comment above, it doesn't seem like exceptions should be caught here and then passed along via a resolved promise. In fact, it doesn't really seem like this should just be catching exceptions because any "normal" error conditions (directory does not exist) could be checked for and acted on.