我正在阅读有关如何使用承诺的文档,并经常"解决"并且"拒绝"作为Promise构造函数的参数传入,即使没有人定义过" resolve"或"拒绝"功能。怎么可能?在使用它们之前,我们不必定义函数吗?
以下是一个例子:(来源:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise#Browser_compatibility)
{{1}}
答案 0 :(得分:1)
它们不会作为参数传递给 Promise
构造函数。
它们作为参数通过 Promise
构造函数传递到您的resolver
回调函数中,并将它们声明为参数。
这类似于其他回调的参数,例如
array.sort(function(a, b) { … })
// ^ ^
array.map(function(element, index) { … })
// ^^^^^^^ ^^^^^
仅在Promise
构造函数回调的情况下值才是函数。