首页 > 解决方案 > 在这段代码中,resolve 和 reject 做什么?

问题描述

我正在学习承诺,我问这个问题只是为了让我清醒。我想我明白它的作用,但无法用言语表达。如果有人解释了这段代码的前两行,我将不胜感激。假设我们使用汽车型号列表调用该函数。

       function superSecretOrder(items) {
      return new Promise(function (resolve, reject) {
       const random = Math.random() * 1000
       setTimeout(function () {
       resolve([...items].sort())
       }, random)
        })
         }

标签: javascriptecmascript-6

解决方案


Resolve 是 promise 返回类型的回调。然后,您可以使用 访问该值.then(...),例如:

function superSecretOrder(items) {
  return new Promise(function (resolve, reject) {
    const random = Math.random() * 1000
    setTimeout(function () {
      resolve([...items].sort())
    }, random)
  })
}

const orderedCardsPromise = superSecretOrder(['b', 'a']);
orderedCardsPromise.then(orderedCards => {
  // After a random amount of time set by `const random = Math.random() * 1000`
  console.log(orderedCards); // ['a', 'b']
});

推荐阅读