You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JS Promise代码中resolve、reject有什么作用?前两行代码如何理解?

代码核心逻辑解释

你提供的完整代码如下:

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

前两行的具体含义

  • 第一行 function superSecretOrder(items) {
    声明了一个名为superSecretOrder的普通函数,它接收一个形参items,按照你的假设,调用该函数时传入的items就是汽车型号列表数组,函数的核心能力是对传入的列表做异步排序处理。
  • 第二行 return new Promise(function (resolve, reject) {
    函数执行后会直接返回一个Promise实例,这代表该函数的执行是异步的,你无法直接同步拿到排序结果,必须通过.then()回调或者async/await语法才能获取最终处理后的值。这里传入Promise构造函数的两个参数是JS内置的回调方法:resolve用于异步操作成功时向外传递结果,reject用于异步操作出错时向外抛出错误信息,当前示例代码没有处理异常场景,所以没有用到reject参数。

补充(辅助理解完整逻辑)

后续代码会生成0~1000毫秒的随机延迟,等待延迟结束后,会先通过扩展运算符[...items]对原汽车型号数组做浅拷贝(避免修改你传入的原数组),再调用数组的sort()方法按默认字典序排序,最后通过resolve方法把排序后的数组传递出去。


内容的提问来源于stack exchange,提问作者Ana kamilova

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 01:27:01