为什么resolve
未在下面的代码中通过myFunction
内的闭包来定义?
const myFunction = () => {
resolve();
}
const p = new Promise((resolve) => {
myFunction();
}
(node:1232) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): ReferenceError: resolve is not defined
答案 0 :(得分:4)
因为这不是JavaScript中的范围界定方式。范围界定是词汇的事情,这意味着重要的不是调用/调用环境之间的动态关系,而是代码的结构和声明的嵌套。
您当然可以明确地将resolve
函数引用传递给另一个函数:
const myFunction = (resolve) => {
resolve();
}
const p = new Promise((resolve) => {
myFunction(resolve);
})