问题描述
我已经开始学习 javascript 承诺.但我就是无法理解承诺的概念.最让我烦恼的是,谁将 Resolver 和 Reject 函数传递给 promise 构造函数?
I have begin learning javascript promises. But I just can't understand the concept of promises.The thing that bothers me most is who is passing the Resolver and Reject function to a promise constructor ?
请看这个 Promise 示例:
See this example of Promise:
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
})
}
现在谁传递了resolve和reject方法,因为我对javascript的理解告诉我这个脚本会抛出未知变量错误,因为resolve和rejects没有定义?
Now who does pass resolve and reject methods , as my understanding of javascript says me that this script will throw unknown variable errors as resolve and rejects are not defined ?
getImage('doggy.jpg').then(function(successurl){
document.getElementById('doggyplayground').innerHTML = '<img src="' + successurl + '" />'
}).catch(function(errorurl){
console.log('Error loading ' + errorurl)
})
现在你看到了一个类似上面的方法,传递这些方法(解析和拒绝)的唯一方法是通过 then 和 catch ,如上面对 getImage 的方法调用所使用的那样.
Now you see a method like the above , the only way these methods(resolve and reject) are passed are via then and catch as used in above method call to getImage.
推荐答案
没人.
函数由promise构造函数传递.
The functions are passed by the promise constructor.
它们被传递给作为第一个参数传递给promise构造函数的函数.
They are passed to the function which you pass as the first argument to the promise constructor.
这篇关于何时或谁将解析和拒绝函数传递给 JS 承诺?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!