私はJavaScriptの約束を学び始めました。しかし、私は約束の概念を理解できません。 私に最も気になることは、誰が解決者と拒否機能を約束しているコンストラクタに渡しているかということですか?ジャバスクリプトの私の理解を決意し、不合格品が定義されていないとして、このスクリプトは、未知の変数のエラーがスローされますことを私に言うように、決意を渡すとメソッドを拒否しない方今すぐいつ、誰が機能を解決してJSの約束を拒否するのですか?
function getImage(url){
return new Promise(function(resolve, reject){
var img = new Image()
img.onload = function(){
resolve(url)
}
img.onerror = function(){
reject(url)
}
img.src = url
})
}
:
プロミスのこの例を参照してください?
getImage('doggy.jpg').then(function(successurl){
document.getElementById('doggyplayground').innerHTML = '<img src="' + successurl + '" />'
}).catch(function(errorurl){
console.log('Error loading ' + errorurl)
})
は今、あなたはのgetImageに上記のメソッド呼び出しで使用される上記のような方法で、これらのメソッド(解決と拒否)が渡される唯一の方法は、その後とキャッチを経由している参照してください。
'resolve'と' reject'は 'Promise'に渡す関数のパラメータです。 'Promise'自体がこの関数を呼び出し、2つのパラメータを渡します。 –
比較: 'function cb(解決、拒否){...};新しい約束(cb); - それは助けになる...? – deceze
@decezeそれは私を助けてくれましたが、私はまだ混乱していますが、なぜ "then"と "catch"を使って他のメソッドを渡すのですか?彼らはメソッドが解決し、メソッドを拒否するメソッドを渡すかのように動作しますか? – user3769778