Javascript Promise:resolve 和reject 的方法名是不是任意的?

Javascript Promise: is the method name for resolve and reject arbitrary?

我对 PromiseResolveRejectthencatch 的概念感到困惑。

虽然我知道如何编写有效的代码,但我想澄清一些问题:

问题一: 关于ResolveRejectthencatch,这些方法都是和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!' 值处于已履行状态吗?

  1. Promise is an object spec that was included 与 Javascript。在 Promise 被包含为 Javascript 的一部分之前,可以通过代码构建相同的规范。
  2. 执行器函数是一个函数。因此,调用什么参数并不重要,重要的是它们的顺序。