当前位置: 首页 > news >正文

友情链接交易网站源码互动型网站

友情链接交易网站源码,互动型网站,珠宝类网站建设,免费进出货管理软件app你提到的这段代码#xff1a; new Promise((resolve, reject) {console.log(3);resolve(1000);console.log(4); });我将分成你要求的 2 大部分详细解释#xff1a;Promise 是什么#xff1f;参数和语法又是什么#xff1f; #x1f9e9; 一、Promise 是什么#xf…你提到的这段代码 new Promise((resolve, reject) {console.log(3);resolve(1000);console.log(4); });我将分成你要求的 2 大部分详细解释Promise 是什么参数和语法又是什么 一、Promise 是什么 ✅ Promise 是 JavaScript 用来处理 异步操作 的对象。 它可以表示一个 当前还未完成、但将来会完成 的任务避免了回调地狱callback hell。 它有三种状态 pending初始状态未完成 fulfilled任务成功完成调用了 resolve rejected任务失败调用了 reject 二、代码行为详解 new Promise((resolve, reject) {console.log(3); // 同步执行立即输出resolve(1000); // 将状态改为 fulfilled成功console.log(4); // 同步执行继续输出 });这段代码的执行顺序为 3 4⚠️ 注意resolve(1000) 不会立刻打印出 1000因为它是要搭配 .then() 来获取值的。 例如 new Promise((resolve, reject) {console.log(3);resolve(1000);console.log(4); }).then(value {console.log(结果是, value); });输出 3 4 结果是 1000三、构造函数参数解释重点 new Promise((resolve, reject) {// 执行器 executor 函数 });这个传进去的函数叫做 执行器函数executor function它会在 new Promise(...) 这一刻 立刻被执行。 参数说明 resolve(value)表示任务成功传给 .then() 的回调。 reject(error)表示任务失败传给 .catch() 的回调。 四、语法深度分析 1. (resolve, reject) { ... } 是什么 这是一个箭头函数arrow function是 ES6 中的新语法。 等价于 function(resolve, reject) {// ... }所以你问的 “形参里的方法是什么意思是函数声明吗” 答它是一个函数表达式不是函数声明属于函数表达式的语法形式。 2. 属于语法的什么部分 整个 new Promise(...) 是在调用构造函数Promise 构造器。 构造器中传入的是一个函数表达式。 resolve 和 reject 是该函数的参数由 Promise 引擎提供。 五、扩展语法知识 ✅ 几种函数写法对比 // 传统函数声明 function add(a, b) {return a b; }// 函数表达式 const add function(a, b) {return a b; };// 箭头函数 const add (a, b) a b;想学习更多的箭头函数的方法可以看我的博客。  关于Javascript ES6箭头函数用法的分析函数声明的几个方式-CSDN博客 ✅ Promise 常见用法 new Promise((resolve, reject) {setTimeout(() {resolve(ok);}, 1000); }).then(result {console.log(result); // ok }).catch(error {console.error(error); });✅ 总结回顾 项目内容说明Promise异步操作的封装对象有状态转换resolve/reject控制状态变为成功或失败new Promise(...)构造器立即执行传入的函数(resolve, reject) {...}箭头函数语法是一个函数表达式 如果你想深入学习 .then() 链式调用、错误处理 .catch()、并发控制如 Promise.all, Promise.race等内容我也可以帮你继续拓展。是否需要 二、系统深入学习 Promise 的高级用法 下面我们来系统深入学习 Promise 的高级用法涵盖 .then() 链式调用 .catch() 错误处理 并发控制Promise.all()、Promise.race()、Promise.allSettled()、Promise.any() 每个部分都附带【详细解释 案例 注释】 ✅ 1. .then() 链式调用 基本语法 doSomething().then(result doNext(result)).then(nextResult doFinal(nextResult)).then(finalResult {console.log(最终结果:, finalResult);});✅ 原理每个 .then() 都会返回一个新的 Promise。 示例处理异步步骤流程 function step1() {return new Promise(resolve {setTimeout(() resolve( Step 1 done), 500);}); }function step2(prev) {return new Promise(resolve {setTimeout(() resolve(${prev} → Step 2 done), 500);}); }function step3(prev) {return new Promise(resolve {setTimeout(() resolve(${prev} → Step 3 done), 500);}); }step1().then(res step2(res)) // 把结果传入 step2.then(res step3(res)) // 把结果传入 step3.then(res console.log(✅ 结果:, res));输出延迟后 ✅ 结果: Step 1 done → Step 2 done → Step 3 done ❗ 2. .catch() 错误处理 用于捕获前面 .then() 中的错误 doSomething().then(res {throw new Error(出错啦);}).catch(err {console.error(捕获错误, err.message);});示例模拟网络失败 function fetchData() {return new Promise((resolve, reject) {setTimeout(() {reject(new Error(❌ 网络请求失败));}, 300);}); }fetchData().then(res console.log(✅ 请求成功:, res)).catch(err console.error(❗ 捕获错误:, err.message));3. 并发控制方法 3.1 Promise.all() ✅ 等所有 Promise 都成功后才进入 .then() ❌ 有一个失败就立即进入 .catch() const p1 Promise.resolve(1); const p2 Promise.resolve(2); const p3 Promise.resolve(3);Promise.all([p1, p2, p3]).then(results {console.log(✅ 所有完成:, results); // [1, 2, 3]}).catch(err {console.error(❌ 某个失败:, err);});3.2 Promise.race() ✅ 谁先完成/失败就返回谁 适用于超时控制 const slow new Promise(resolve setTimeout(() resolve( 慢响应), 2000)); const fast new Promise(resolve setTimeout(() resolve( 快响应), 500));Promise.race([slow, fast]).then(result {console.log(⚡ 先返回的:, result); // 快响应});3.3 Promise.allSettled() 等所有 Promise 都完成无论成功或失败返回每个状态和结果。 const p1 Promise.resolve(✔ 成功1); const p2 Promise.reject(✖ 失败2); const p3 Promise.resolve(✔ 成功3);Promise.allSettled([p1, p2, p3]).then(results {results.forEach((res, i) {console.log(任务 ${i 1}:, res.status, res.value || res.reason);});});输出 任务 1: fulfilled ✔ 成功1 任务 2: rejected ✖ 失败2 任务 3: fulfilled ✔ 成功33.4 Promise.any() ✅ 返回第一个成功的值 ❌ 如果都失败则报错 AggregateError const p1 Promise.reject(失败1); const p2 Promise.reject(失败2); const p3 Promise.resolve(成功3);Promise.any([p1, p2, p3]).then(result {console.log(✅ 首个成功:, result); // 成功3}).catch(err {console.error(全部失败:, err);});技巧拓展模拟请求 超时处理 function fakeFetch(url, delay) {return new Promise(resolve {setTimeout(() resolve(✅ 响应自 ${url}), delay);}); }const request fakeFetch(/api/data, 2000); const timeout new Promise((_, reject) setTimeout(() reject(new Error(⏱ 请求超时)), 1000) );Promise.race([request, timeout]).then(res console.log(res)).catch(err console.error(err.message));输出 ⏱ 请求超时 ✅ 总结对照表 方法等待全部返回什么失败会怎样Promise.all是所有结果任一失败就失败Promise.race否最快那个的结果最快失败就失败Promise.allSettled是所有状态和结果不会失败Promise.any否第一个成功的值全失败时才报错 如果你需要我帮你出一些练习题、面试题或者你想手写模拟一个 Promise.all 的实现我也可以继续带你深入。是否继续
http://www.hkea.cn/news/14392076/

相关文章:

  • 定南网站建设商标注册网上申请
  • 响应式网站一般做几个设计稿第三方网站开发优缺点
  • ui做的好的公司网站邢台网站建设企业
  • 柏乡县网站建设wordpress修改样式表
  • 最强的手机网站建设官网设计优秀案例
  • wordpress move 插件株洲有实力关键词优化服务
  • 可以看所有网站的浏览器建设厅特种工
  • 白云品牌型网站建设seo服务是什么
  • 电商学院建设设计网站广告公司起名如何起
  • 影楼手机网站设计博物馆网站建设目的
  • 青岛西海岸新区建设局网站公司注册有限公司
  • 企业网站关键词云南网站设计平台
  • 青岛济南网站制作自学做蛋糕的网站
  • 网站建设 ui设计公司网站做支付宝花呗分期
  • 阿里网站建设需要准备什么软件建设英语网站目的
  • 郏县住房和城乡建设局网站开福区网站建设中
  • 公司想建个网站广告设计与制作专业属于什么大类
  • 米枫网站怎么做分页安卓手机软件开发平台
  • 中国有名的模版网站网站后台系统的易用性
  • 工程建设业主官方网站wordpress 点评插件
  • 锦州网站建设报价建设工程执业注册中心网站
  • 环保网站建设价格现在做一个什么的网站比较好
  • 官方网站下载派的app可以做思维导图的网站
  • wordpress的目录结构(一)西安seo排名公司
  • 广州网站建设 骏域wordpress 萌化主题
  • 河南网站建设路国外设计师wordpress主题
  • 禹州市门户网站建设邢台网络推广
  • 网站建设价格优惠广州网站优化网站建设
  • 网站建设实习生怎么样黄冈网站seo
  • 网站相对路径和绝对路径应用界面设计