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

西安网站工作室做微信网站价格

西安网站工作室,做微信网站价格,运城网站建设价格,外包公司工伤找谁赔偿Promise 是 JavaScript 异步编程的标准化解决方案,用于处理非阻塞操作(如网络请求、文件读写)。它解决了传统回调地狱问题,提供了更优雅的异步控制流。 阻塞操作: 阻塞操作:会阻止主线程继续执行的代码,直…

Promise 是 JavaScript 异步编程的标准化解决方案,用于处理非阻塞操作(如网络请求、文件读写)。它解决了传统回调地狱问题,提供了更优雅的异步控制流。

阻塞操作:

阻塞操作:会阻止主线程继续执行的代码,直到该操作完成。由于 JavaScript 是单线程语言,当阻塞操作执行时,整个程序会"冻结",无法响应其他事件或执行其他任务。

阻塞操作的特征:

  • 同步执行:代码按顺序执行,必须等待当前操作完成

  • 主线程占用:独占 JavaScript 主线程

  • 事件循环暂停:阻止事件循环处理其他任务

  • UI 冻结:在浏览器中会导致页面无响应

常见阻塞操作:

  •  CPU 密集型计算
  •  同步 I/O 操作:指 js执行线程必须等待操作完成才能继续执行的输入/输出任务
  •  同步等待

阻塞操作的危害:

  • 用户体验差:页面卡顿、无响应

  • 性能瓶颈:无法充分利用多核CPU

  • 资源浪费:主线程被占用,无法处理其他任务

  • 潜在崩溃:长时间阻塞可能导致浏览器终止脚本执行

阻塞操作 vs 非阻塞操作:

特性

阻塞操作

非阻塞操作

执行方式

同步

异步

线程占用

独占主线程

不阻塞主线程

性能影响

导致UI冻结

保持UI响应

错误处理

try/catch

Promise.catch/回调

典型API

fs.readFileSync

fs.readFile

XMLHttpRequest (sync)

fetch/XMLHttpRequest (async)

alert/prompt

无直接替代

Promise状态机:Promise 是一个状态容器,包含三种不可逆状态

​​​​​​ pending :初始状态,操作未完成(等待)

fulfilled:操作成功完成(履行)/fʊlˈfɪld/

rejected:操作失败(拒绝)

Promise 构造函数总是返回一个 Promise 对象,resolve/reject 传递的值决定 Promise 最终携带的值,.then().catch() 是处理异步操作的核心方法。

.then() 方法:处理成功状态,返回新 Promise,值传递与转换,处理异步操作

.catch() 方法:错误捕获,链式错误处理,返回恢复值

创建Promise

1.const fetchData = new Promise((resolve, reject) => {
  // 异步操作(如 API 请求)
  setTimeout(() => {
    Math.random() > 0.5 ? 
      resolve("数据加载成功") : 
      reject(new Error("网络错误"));
  }, 1000);
});

2.validator: (rule, value) => {

        return new Promise((resolve, reject) => {

                if (!value) {

                        reject(new Error('请选择领域信息'))

                        return

                }

                resolve()

        })

},

3.const upload = async (config) => new Promise((resolve, reject) => {

        const uploadConfig = {

                ...config,

                onError(errorMsg) {

                        reject(errorMsg);

                },

                onFinish(fileInfos) {

                        resolve(fileInfos);

                },

                onProgress() { return; },

         };

        const venusUploadInstance = createUpload(uploadConfig, 'venus');

        venusUploadInstance.upload();

});

使用Promise

fetchData
  .then(data => console.log(data)) // 成功处理
  .catch(err => console.error(err)) // 错误捕获
  .finally(() => console.log("清理资源")); // 必然执行
 

并行控制:

方法作用示例
Promise.all()全部成功才返回表单多字段验证
Promise.any()任意成功即返回多 CDN 资源竞速加载
Promise.allSettled()等待所有结束(无论成败)批量操作结果统计

async函数:在函数声明前添加 async 关键字,总是返回 Promise 对象,允许在函数内使用 await

async function fetchData() {return "数据"; // 自动包装为 Promise.resolve("数据")
}// 等效于:
function fetchData() {return Promise.resolve("数据");
}

await 表达式 :只能在 async 函数内部使用,暂停 async 函数的执行,等待 Promise 解决,返回 Promise 的解决值

async function getUser() {const response = await fetch('/api/user'); // 等待fetch完成const user = await response.json(); // 等待JSON解析return user;
}

文章转载自:

http://Wvta6Kfz.qhrdx.cn
http://qEp5Uyn1.qhrdx.cn
http://fnPuTGdw.qhrdx.cn
http://St1WmuGi.qhrdx.cn
http://CLiSyYmk.qhrdx.cn
http://XgFyshDv.qhrdx.cn
http://T5RuKMd3.qhrdx.cn
http://7rqzBcde.qhrdx.cn
http://bKauCLVL.qhrdx.cn
http://zydMslx0.qhrdx.cn
http://jjRj5Huv.qhrdx.cn
http://wlS8sfc0.qhrdx.cn
http://Fx1MDaOr.qhrdx.cn
http://D0kzDIME.qhrdx.cn
http://uGu6KgtV.qhrdx.cn
http://d2MrX4m6.qhrdx.cn
http://eberOJPh.qhrdx.cn
http://Yx16RgBz.qhrdx.cn
http://rVgNuVKU.qhrdx.cn
http://WNNaA6R7.qhrdx.cn
http://H8v1pMHD.qhrdx.cn
http://E6BM3qdv.qhrdx.cn
http://hjAdY1tK.qhrdx.cn
http://R2W004Gb.qhrdx.cn
http://9iEX345M.qhrdx.cn
http://hQyPXq5m.qhrdx.cn
http://O4eEknnX.qhrdx.cn
http://1YjJNqfT.qhrdx.cn
http://GBe7gDz4.qhrdx.cn
http://AdhpCl1i.qhrdx.cn
http://www.dtcms.com/wzjs/704731.html

相关文章:

  • 贵阳做企业网站商城网站开发项目描述
  • 做网站用那种数据库网站建设对比分析
  • 怎么做电影网站吗朝阳专业做网站
  • wordpress提高浏览量整站seo技术
  • 绍兴专业做网站海南公司注册网站
  • 廊坊做网站的企业哪家好河南卫生基层系统网站建设
  • 网站如何留住客户eclipse wordpress
  • html写手机网站怎样给自己网站做反链
  • 温州网站优化关键词泰安招聘网站有哪些
  • 网站 栏目做下拉网址谁有给我一个
  • wordpress编辑和作者的权限区别莱芜网站优化费用
  • html简单网站成品免费免费推广软件有哪些
  • 做一借款撮合网站有限公司和责任公司的区别
  • 物业公司网站建设建筑单位资质
  • 云南网站建设专家域名申请证书
  • 查建筑材料的网站wordpress 无广告视频插件下载
  • 旅游类网站如何做推广公司网站建设
  • 百度商桥代码怎么加到网站上对网站有效的优化软件
  • 网站开发接单网站基础微网站开发代理
  • 海南省零售户电商网站上市公司数据查询网站
  • 保定网站建设平台分析广州网站建设很棒 乐云践新
  • 企业融资的意义优化网站建设公司
  • 万户网络合肥新网站关键词怎么优化
  • 安徽做网站怎么提高网站的流量
  • 湖南住房和城乡建设厅网站首页台州手机端建站模板
  • 塘沽企业网站建设网站结构优化包括什么
  • 青岛私人做网站网页设计素材包下载
  • 天津网站建设哪家公司好原创设计
  • 网站子栏目设计wordpress广告位代码
  • 网站搭建介绍不备案的网站