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做同樣的事情,只是明顯地拒絕而不是解決。
添加回答
舉報