Гарантии выполнения и отмены отложенных операций?
setTimeout или setInterval выполнится не раньше, чем через указанное время
Допустим, пришло время выполнения функции в setTimeout, но на этот момент выполняется синхронная функция, которая блокирует процесс на 200 мс, значит - обработчик из setTimeout выполнится не раньше, чем через время, через которое он должен начать выполняться + время, которое требуется для заверения выполнения синхронной функции из стека
Promise - великая вещь ES6. При запросах на сервер и таймаутах без них ни куда