やりたいこと JavaScriptで、画像の width/height が知りたいとき、以下のようにする。 const img = new Image(); img.onload = () => { console.log(img.width, img.height); } img.src = '画像のパス'; img.src にパスをつっこんで、読み込み完了したタイミングで onload が走る。 このとき、 onload で完了を待たずに img.width などとしても0が返される(読み込み完了前の値が返される)。 これを Promise ベースで書いて、 async/await や、 then/catch の構文で使えると便利なのでは。 結果 こう書ける。Imageに限らず、onloadにコールバック指定する系はだいたい書き換え可能。 new Promise((resolve, r
![PromiseベースでImage().onloadする - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/145697116d0d9a093f10301527e72ddb8eb1e7da/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9UHJvbWlzZSVFMyU4MyU5OSVFMyU4MyVCQyVFMyU4MiVCOSVFMyU4MSVBN0ltYWdlJTI4JTI5Lm9ubG9hZCVFMyU4MSU5OSVFMyU4MiU4QiZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnR4dC1jbGlwPWVsbGlwc2lzJnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9MzU2NzdmZTBjZjk2NjNkOTk4MzIyZDdhYmNiMWVjZDk%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwc2luX3RhbmFrYSZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9ODBkMTk5NDczZWM4NWMxOGM5NzY3OWVmMWEyZDIzYjI%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D9e6a59f1c58f40701955a24fc6484812)