Javascript Promise:resolve 和reject 的方法名是不是任意的?
Javascript Promise: is the method name for resolve and reject arbitrary?
我对 Promise
、Resolve
、Reject
、then
、catch
的概念感到困惑。
虽然我知道如何编写有效的代码,但我想澄清一些问题:
问题一:
关于Resolve
、Reject
、then
、catch
,这些方法都是和Promise
一起介绍的吗?在Promise
引入Javascript之前,Javascript是否已经有这些特殊方法了?
问题二:
作为参数传递给 Promise 中的执行函数的方法名称 resolve, reject
是任意的吗?
例如:
const executorFunction = (resolve, reject) => {
if ('1' === '1') {
resolve('I resolved!');
} else {
reject('I rejected!');
}
}
const myFirstPromise = new Promise(executorFunction);
上面的代码运行良好,没有语法错误或任何错误。 promise 将处于 fulfilled 状态,值为 '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!'
值处于已履行状态吗?
我对 Promise
、Resolve
、Reject
、then
、catch
的概念感到困惑。
虽然我知道如何编写有效的代码,但我想澄清一些问题:
问题一:
关于Resolve
、Reject
、then
、catch
,这些方法都是和Promise
一起介绍的吗?在Promise
引入Javascript之前,Javascript是否已经有这些特殊方法了?
问题二:
作为参数传递给 Promise 中的执行函数的方法名称 resolve, reject
是任意的吗?
例如:
const executorFunction = (resolve, reject) => {
if ('1' === '1') {
resolve('I resolved!');
} else {
reject('I rejected!');
}
}
const myFirstPromise = new Promise(executorFunction);
上面的代码运行良好,没有语法错误或任何错误。 promise 将处于 fulfilled 状态,值为 '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!'
值处于已履行状态吗?