(...)今利用できる値、もしくは将来的に、または決して(出典:MDN)さ
は、だから私はどのアプリを持って言うことができます写真で作業したい画像は、例えば、ロードされる。アルゴリズムがバックグラウンドで動作した後(または何らかの他の種類の遅延)今、私は、ピクチャが将来ので利用可能かどうかを、コールバックではなく約束を使って確認したいと思います。これはしません
Promise.all([
loadImage('images/pic1.jpg'),
loadImage('images/pic2.jpg')
]).then((images) => {
images.forEach(img => addImg(img.src))
}).catch((error) => {
// handle error
})
:これに属する約束は、次のようになります
function loadImage(url) {
return new Promise((resolve, reject) => {
let image = new Image()
image.onload = function() {
resolve(image)
}
image.onerror = function() {
let message =
'Could not load image at ' + url
reject(new Error(msg))
}
image.src = url
})
}
:画像が利用可能な場合、私は次のコードを使用することができ、確認するには
ピクチャがの場合は、の場合はには表示されません。写真は一秒でそこにありますが、約束は誤りを返すでしょう。
ここで約束しないものは何ですか?私の場合、それは実際の約束そのものではなく、loadImage(url)
に依存しています。
PS:例は、それが解決されたとき、どのような約束を知っているだろうfunfunfunction
に触発しますか?
私の理解では、バックグラウンドで動く可能性のあるフレームワークはもちろんのこと、その周りの他のコードを「聴く」ことはできません。私はこの例のようになるでしょう:写真が利用可能かどうかを約束します - 彼らはまだバックグラウンドで働いています - >約束が解決してエラーをスローする - >アルゴリズムは画像で終了します - >画像がありますか?
を返さ「まだ約束はエラーを返します。」_どこに質問で 'javascript'の誤差はありますか? – guest271314
**これは仮説です!**私はこの問題を解決する他の方法があることを知っています。私は約束がどのようにここで私を助けてくれるのか、なぜすべてがloadImage(URL)に依存しているのかを約束してくれることを理解したいです – User12547645
*写真は現在ではなく、 * *未来については、最終的に現在になるという習慣があることです。 –