【发布时间】:2022-02-17 12:17:57
【问题描述】:
我对@987654321@、Resolve、Reject、then、catch 的概念感到困惑。
虽然我知道如何编写有效的代码,但我想澄清一些问题:
问题 1:
关于Resolve、Reject、then、catch,这些方法都是和Promise一起介绍的吗?在Promise被引入Javascript之前,Javascript是不是已经有了这些特殊的方法?
问题 2:
在 Promise 中作为参数传递给执行器函数的方法名称 resolve, reject 是任意的吗?
例如:
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!' 值的promise 是否仍处于已履行状态?
为了更进一步,如果我交换方法名称:
const executorFunction = (reject, resolve) => {
if ('1' === '1') {
reject('I resolved!');
} else {
resolve('I rejected!');
}
}
const myFirstPromise = new Promise(executorFunction);
现在,这行得通吗?具有'I resolved!' 值的promise 是否仍处于已履行状态?
【问题讨论】:
-
Will the promise still be in fulfilled state with 'I resolved!' value?自己测试这个很容易 - 不像你可以破坏任何东西:p
标签: javascript promise