It seems like your script relies on the image. If that's right, then yeah, it should wait until the image is loaded. Just like you need to wait for the DOM ready event before you can safely use the DOM, you also need to wait for the image load event before you can safely use the image.
The timeout will work, but less effectively. If you use a long timeout, such as 2 to 5 seconds, then your script may be waiting longer than it needs to. And if you use a short timeout, such as 50ms, then it'll poll many times before finally triggering the event you were waiting for.
On the other hand, if you have the image notify you when it's ready, then there's no extra waiting and no unnecessary polling.