#1. Using JavaScript Error objects to reject promises can capture the call stack for troubleshooting
Daniel Parker