2 回答

TA貢獻1869條經(jīng)驗 獲得超4個贊
您在輸出中看到的屬性是全局JavaScript對象console.log()的.resolve()和.reject()屬性Promise。您可以將它們視為類的靜態(tài)類方法Promise。
它們用于創(chuàng)建Promise已經(jīng)解決/拒絕的新對象:
const p1 = Promise.resolve(3);
console.log(await p1);
// 3
該promise和reject你在調(diào)用中使用的參數(shù):
const myFirstPromise = new Promise((resolve, reject) => {
if (rand() < 0.5) {
resolve(3);
} else {
reject(new Error('not today'));
}
});
只是函數(shù)參數(shù)??梢愿鶕?jù)需要命名它們。它們僅在您作為參數(shù)傳遞給Promise構(gòu)造函數(shù)的執(zhí)行程序函數(shù)中可見。
他們沒有聯(lián)系或與任何相關(guān)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條經(jīng)驗 獲得超3個贊
Promise.resolve
是“獲取價值或承諾并將其包裝在承諾中返回”的快捷方式。myPromise = Promise.resolve("myVal")
是一種較短的方法
myPromise = new Promise((resolve) => resolve("myVal"))
Promise.reject做同樣的事情,只是明顯地拒絕而不是解決。
添加回答
舉報