我對Promise, Resolve, Reject,then的概念感到困惑catch。
雖然我知道如何撰寫有效的代碼,但我想澄清一些問題:
問題一:關于Resolve, Reject, then, catch, 這些方法都是和 一起介紹的Promise嗎?在Promise介紹 Javascript 之前,Javascript 是不是已經有了這些特殊的方法?
問題2:resolve, rejectPromise中作為引數傳遞給executor函式的方法名是任意的嗎?例如:
const executorFunction = (resolve, reject) => {
if ('1' === '1') {
resolve('I resolved!');
} else {
reject('I rejected!');
}
}
const myFirstPromise = new Promise(executorFunction);
上面的代碼運行良好,沒有語法錯誤或任何東西。承諾將處于具有'I resolved!'價值的履行狀態。但如果我這樣做:
const executorFunction = (A, B) => {
if ('1' === '1') {
A('I resolved!');
} else {
B('I rejected!');
}
}
const myFirstPromise = new Promise(executorFunction);
它還會起作用嗎?承諾是否仍處于具有'I resolved!'價值的履行狀態?
為了更進一步,如果我交換方法名稱:
const executorFunction = (reject, resolve) => {
if ('1' === '1') {
reject('I resolved!');
} else {
resolve('I rejected!');
}
}
const myFirstPromise = new Promise(executorFunction);
現在,這行得通嗎?承諾是否仍處于具有'I resolved!'價值的履行狀態?
uj5u.com熱心網友回復:
- Promise是一個包含在 Javascript 中的物件規范。在 Promise 作為 Javascript 的一部分包含之前,可以通過代碼構建相同的規范。
- Executor函式是一個函式。因此,呼叫什么引數并不重要,只關心它們的順序。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/425528.html
標籤:javascript 承诺
下一篇:如何打破打字稿地圖
