The timeout is the whole reason this is a function: an Image that neither loads nor
errors — a truncated payload, a data URI the engine will not touch — leaves the shutter
awaiting a promise that never settles, and the camera looks hung rather than broken.
Every caller here already had its own copy of this race.
Decode a data URI into an
<img>, or reject.The timeout is the whole reason this is a function: an
Imagethat neither loads nor errors — a truncated payload, a data URI the engine will not touch — leaves the shutter awaiting a promise that never settles, and the camera looks hung rather than broken. Every caller here already had its own copy of this race.