2 回答
TA贡献1869条经验 获得超4个赞
您在输出中看到的属性是全局JavaScript对象console.log()的.resolve()和.reject()属性Promise。您可以将它们视为类的静态类方法Promise。
它们用于创建Promise已经解决/拒绝的新对象:
const p1 = Promise.resolve(3);
console.log(await p1);
// 3
该promise和reject你在调用中使用的参数:
const myFirstPromise = new Promise((resolve, reject) => {
if (rand() < 0.5) {
resolve(3);
} else {
reject(new Error('not today'));
}
});
只是函数参数。可以根据需要命名它们。它们仅在您作为参数传递给Promise构造函数的执行程序函数中可见。
他们没有联系或与任何相关Promise.resolve()和Promise.reject()。
上面的代码也可以写成:
const f1 = (resolve, reject) => {
if (rand() < 0.5) {
resolve(3);
} else {
reject(new Error('not today'));
}
};
const myFirstPromise = new Promise(f1);
这样更清楚,resolve并且reject不涉及myFirstPromise或任何Promise以任何方式。它们只是function的局部变量f1。
TA贡献1777条经验 获得超3个赞
Promise.resolve
是“获取价值或承诺并将其包装在承诺中返回”的快捷方式。myPromise = Promise.resolve("myVal")
是一种较短的方法
myPromise = new Promise((resolve) => resolve("myVal"))
Promise.reject做同样的事情,只是明显地拒绝而不是解决。
添加回答
举报