A promise is suitable for any operation that won't necessarily run immediately.

Javascript is single-threaded. So if you call a function, it will necessarily run immediately on the same thread. A promise is a convenient way to run code some time later (still on the same thread, but as part of a different event handler).

So in the case of a timeout, when the callback should be called later, using a promise is a good idea.

And if you're unsure whether to use a promise or a simple callback, both serve more-or-less the same purpose, but promises normally make the code more readable.