产品做推广都有那些网站新注册公司怎么做网站

web/2025/10/7 16:27:53/文章来源:
产品做推广都有那些网站,新注册公司怎么做网站,网站里自动切换图片怎么做,怎样才能增加网站目录捏 前言一、异步编程二、回调函数三、回调地狱四、Promise1. Promise 简介2. Promise 语法3. Promise 链式 五、总结 前言 想要学习Promise#xff0c;我们首先要了解异步编程、回调函数、回调地狱三方面知识#xff1a; 一、异步编程 异步编程技术使你的程序可以在执行一… 目录捏 前言一、异步编程二、回调函数三、回调地狱四、Promise1. Promise 简介2. Promise 语法3. Promise 链式 五、总结 前言 想要学习Promise我们首先要了解异步编程、回调函数、回调地狱三方面知识 一、异步编程 异步编程技术使你的程序可以在执行一个可能长期运行的任务的同时继续对其他事件做出反应而不必等待任务完成。 与此同时你的程序也将在任务完成后显示结果。 举个栗子 假设现在老板让你修改一个很紧急并且很重要的代码让你下班前必须改完。并且为了督促进度老板搬了个椅子坐在一边盯着你敲。 你心里肯定已经犯嘀咕“你有这么闲吗就不能去干点其他事情吗” 老板仿佛接收到了你的心电图一样“我就在这等着你改完代码之前我哪也不去。” 这个例子中老板交给你任务后就一直等待什么都不做直到你改完这个场景就是所谓的同步。 第二天老板又交给了你一项任务。 不过这次就没那么着急啦这次老板轻描淡写“今天的这个代码不着急你写完告诉我一声就行。” 这次老板没有盯着你写代码而是转身刷视频去了你写完后简单的和老板报告了一声“我写完啦” 这个例子老板交代完任务就去忙其它事情你完成任务后简单的告诉老板任务完成这就是所谓的异步。 值得注意的是在异步这种场景下你在改代码的同时老板在刷视频这两件事在同时进行因此这就是异步比同步高效的本质。 与异步任务相对应的概念是同步任务同步任务在主线程上排队执行只有前一个任务执行完毕才能执行下一个任务。异步任务不进入主线程而是进入异步队列前一个任务是否执行完毕不影响下一个任务的执行。这里拿定时器作为异步任务举例 // setTimeout中的内容不会先被输出而是先输出异步任务之后的内容setTimeout(() {console.log(我在定时器里捏)}, 2000)console.log(我在定时器后捏~~)如果按照代码编写的顺序应该先输出我在定时器里捏再输出我在定时器后捏~~。但实际输出为 这种不阻塞后面任务执行的任务就叫做异步任务。 二、回调函数 把一个函数当作参数传递给另一个函数但是此函数并不会立即执行而是在将来特定的时机再去调用这个函数就叫做回调函数。在定时器setTimeout以及Ajax的请求时都会用到回调函数。 再举个栗子 你到一个商店去买东西刚好你要的东西没有货于是你在店员那里留下了你的电话过了几天店里有货了店员就打了你的电话然后你接到电话后就到店里去取了货。 在这个例子里你的电话号码就叫回调函数你把电话留给店员就叫登记回调函数店里后来有货了叫做触发了回调关联的事件店员给你打电话叫做调用回调函数你到店里去取货叫做响应回调事件。 回调函数在我们启动一个异步任务的时候就会告诉它等你完成了这个任务之后要干什么。这样一来主线程几乎不用关心异步任务的状态了他自己会善始善终。 // setTimeout中第一个参数就是回调函数只有在1秒后执行setTimeout(() {console.log(执行回调函数)}, 1000);console.log(先执行我捏~~)根据前面对异步任务的介绍应该知道此代码会先执行定时器后的语句再执行定时器及回调函数。 三、回调地狱 根据前面对异步编程以及回调函数的介绍我们可以得出一个结论存在异步任务的代码不能保证其按照顺序执行那如果我们非要代码顺序执行呢 比如我要间隔不同时间输出三句话语序必须是下面这样的我在定时器1里捏我在定时器2里捏我在定时器3里捏 setTimeout(() {console.log(我在定时器1里捏)}, 3000)setTimeout(() {console.log(我在定时器2里捏)}, 2000)setTimeout(() {console.log(我在定时器3里捏)}, 1000)console.log(我在定时器后捏~~)当使用定时器顺序调用时则会出现输出顺序错乱的问题 所以必须要这样操作才能保证输出顺序正确 setTimeout(() {console.log(我在定时器1里捏)setTimeout(() {console.log(我在定时器2里捏)setTimeout(() {console.log(我在定时器3里捏)}, 1000)}, 2000)}, 3000)console.log(我在定时器后捏~~)可以看到代码中的回调函数层层嵌套并且嵌套了3层这种回调函数中嵌套回调函数的情况就叫做回调地狱。 所以回调地狱就是为实现代码顺序执行而出现的一种操作它会造成我们的代码可读性非常差后期不好维护。 那么该如何解决回调地狱问题呢 四、Promise 1. Promise 简介 Promise中文翻译过来就是承诺意思是承诺在未来某一个时间点返回数据给你。它是JS中的一个原生对象是一种异步编程的解决方案可以替换掉传统的回调函数解决方案。 Promise 对象有三个状态pending进行中fulfilled已成功rejected已失败Promise 构造函数接收一个函数作为参数该函数是同步的并且会被立即执行所以我们称之为起始函数我们需要处理的异步任务就卸载在该函数体内该函数的两个参数是resolvereject。异步任务执行成功时调用resolve函数并传递成功的结果反之调用reject并传递失败的原因。Promise 构造函数返回一个 Promise 对象该对象具有以下几个方法 then用于处理 Promise 成功状态的回调函数。catch用于处理 Promise 失败状态的回调函数有任何异常都会直接执行。finally无论 Promise 是成功还是失败都会执行的回调函数。 2. Promise 语法 Promise 本身只是一个容器真正异步的是它的两个回调resolve和reject分别表示 Promise 成功和失败的状态。其本质不是控制异步代码的执行顺序 而是控制异步代码结果处理的顺序。 那么如何改变 Promise 的状态 resolve(value): 如果当前是 pending 就会变为 fulfilled const p new Promise((resolve, reject) {setTimeout(() {resolve(用户数据读取成功)}, 1000)})p.then(value {console.log(value)}).catch(reason {console.log(reason)})console.log(p)reject(error): 如果当前是 pending 就会变为 rejected const p new Promise((resolve, reject) {setTimeout(() {reject(用户数据读取失败~~)}, 1000)})p.then(value {console.log(value)}).catch(reason {console.log(reason)})console.log(p)抛出异常: 如果当前是 pending 就会变为 rejected const p new Promise((resolve, reject) {throw new Error(出错啦)})console.log(p)注意一旦从进行状态变成为其他状态就永远不能更改状态了。 3. Promise 链式 Promise 链式编程可以保证代码的执行顺序前提是每一次在then做完处理后一定要 return 一个 Promise对象这样才能在下一次then时接收到数据。 在对 Promise 有了一定了解之后再尝试通过 Promise 链式调用来解决上文介绍回调地狱时所提出的问题实现以下语句我在定时器1里捏我在定时器2里捏我在定时器3里捏 new Promise((resolve, reject) {setTimeout(() {resolve(我在定时器1里捏)}, 3000);}).then(value {console.log(value)return new Promise((resolve, reject) {setTimeout(() {resolve(我在定时器2里捏)}, 2000);})}).then(value {console.log(value)return new Promise((resolve, reject) {setTimeout(() {resolve(我在定时器3里捏)}, 1000);})}).then(value console.log(value)).catch(reason console.log(reason))上述代码看上去很凌乱可读性并不好所以我们可以将它的核心部分写成一个 promise 函数 function promise(value, time) {return new Promise((resolve, reject) {setTimeout(() {resolve(value)}, time)})}promise(我在定时器1里捏, 3000).then(data {console.log(data);return promise(我在定时器2里捏, 2000);}).then(data {console.log(data);return promise(我在定时器3里捏, 1000)}).then(data {console.log(data);}).catch(data {console.log(data);})五、总结 Promise 虽然摆脱了回调地狱但是then的链式调用也会带来额外的阅读负担并且 Promise 传递中间值非常麻烦。 同时 Promise 的调试很差由于没有代码块你不能在⼀个返回表达式的箭头函数中设置断点如果你在⼀个then代码块中使用调试器的步进step-over功能调试器并不会进入后续的then代码块因为调试器只能跟踪同步代码的每⼀步。 所以ES2017推出了新的语法 async/await 来更好的解决异步问题下一篇文章会给大家带来async/await的相关介绍敬请期待~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/88576.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站运营商查询大型网站开发价格

***import: html文件中,通过script标签引入js文件。而vue中,通过import xxx from xxx路径的方式导入文件,不光可以导入js文件。 from前的:“xxx”指的是为导入的文件起一个名称,不是指导入的文件的名称&…

泊头市做网站价格跨境网站开发

高纯气体应用领域极宽,在半导体工业,高纯氮、氢、氩、氦可作为运载气和保护气;高纯气体可作为配制混合气的底气。随着LED和半导体的发展,对于其原物料生产的所需要的高纯气体,特别是7N级别的高纯氨气的需求不断增加,近…

图书馆网站建设需求方案网站建设学习网

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于SSM的超市订单管理系统,java项目。 …

网站域名费用交给谁企业运营管理流程图

文章目录 1.存储基础1.1 基础知识1.1.1 存储基础1.1.2 存储使用 1.2 文件系统1.2.1 简介1.2.2 数据存储1.2.3 存储应用的基本方式1.2.4 文件存储 1.3 小结 1.存储基础 学习目标:这一节,我们从基础知识、文件系统、小节三个方面来学习。 1.1 基础知识 1.…

要点营销网站官方网站建设合作协议

目录 1、通义千问 (aliyun.com) 2、MIYAGPT (miyadns.com) 3、AIchatOS 4、 Safeline Waf CE (aitianhu1.top)

深圳最好的营销网站建设公司排名七牛云微信打开wordpress

欢迎来到《算法与数据结构》专栏!这个专栏将引领您进入计算机科学领域中最重要、最精彩的领域之一:算法与数据结构。不管您是一名初学者,还是已经拥有一定编程经验的开发者,都可以从这里找到有益的知识和实践。 在计算机科学的世…

freenom怎么做网站青岛注册公司代理

进制: 概念: 进制:指进位制,是人们规定的一种进位方式,表示某一位置的数看,运算时是逢*进一位。十进制是逢十进一,二进制是逢二进一。以此类推。学习的目的就是为了数据运算过程理解的更加深刻…

涞水网站建设深圳做企业网站多少钱

1、前期准备 部署好mysql数据库,创建好unicom数据库下载好bootstap的插件下载好jquery的插件下载好mysqlclient-1.4.6-cp36-cp36m-win_amd64.whl的安装包,根据python的版本下载 2、创建项目 在pycharm中创建项目 在pycharm的终端创建虚拟环境 py -m v…

中国机械工业建设集团有限公司网站南湖区建设街道办事处网站

导语 在互联网时代,获取用户的反馈和意见是非常重要的,它可以帮助我们了解用户的需求和喜好,提高我们的产品和服务质量。有时候,我们需要从地图上爬取用户对某些地点或商家的评价和评论,这样我们就可以分析用户对不同…

网站改版声明wordpress自主注册

人脸检测是一种计算机视觉技术,旨在识别图像或视频中的人脸。这项技术的基本内容包括使用特定的算法和模型来定位和识别人脸,通常涉及在图像中寻找面部特征,如眼睛、鼻子、嘴巴等,以便准确地确定人脸的位置和边界。人脸检测技术的…

淘宝放单网站怎么做网站单页模板怎么安装

图形和动画本地化是多媒体改编的一个关键方面,需要对技术技能和文化细微差别有深入的理解。当由母语人士和设计师进行时,这一过程达到了自动化系统通常无法复制的真实性和相关性水平。 本土专业人士对文化偏好、象征主义和视觉美学有着固有的理解&#…

北京哪有建网站公司或个人的自动网站建设系统cms

今日简单分享 empty 组件的源码实现,主要从以下三个方面: 1、empty 组件页面结构 2、empty 组件属性 3、empty 组件 slot 一、empty 组件页面结构 二、empty 组件属性 2.1 image 属性,图片地址,类型 string,无默认…

网站跟网页的区别是什么设计网站报价

在Java中,已检查异常(Checked Exceptions)和未检查异常(Unchecked Exceptions)是两种主要的异常类型。 已检查异常(Checked Exceptions):这种类型的异常在编译期就会被检查&#xf…

金融投资网站模板策划公司职位

CentOS 使用 Cronie 实现定时任务 文章目录 CentOS 使用 Cronie 实现定时任务一、简介二、基本使用1、常用命令2、使用示例第一步:创建脚本/home/create.sh第二步:添加定时任务第三步:重启 cronie 服务额外:查看 cronie 运行状态定…

巴中网站开发wechat网页版登陆

编程笔记 html5&css&js 005 小学数学四则运算练习 一、代码二、解释 这段代码定义了一个页面&#xff0c;用于小学数学四则运算的练习。这可能有点难&#xff0c;实际如果需要可以通过更改代码来达到要求。 一、代码 <!DOCTYPE html> <html lang"zh&quo…

360建站和凡科哪个好郑州小程序开发外包

技术背景 OpenMM是一款基于Python开发的开源分子动力学模拟软件&#xff0c;这几年因为AlphaFold的缘故&#xff0c;使得这个软件的热度有了不少提升。并且可以使用GPU硬件加速&#xff0c;所以性能上也不赖。这里介绍一下该软件的基本安装和使用方法&#xff0c;并附带一个真空…

茶叶公司商城网站建设购物网站建设收费

apache camel仅仅因为圣诞节并不意味着骆驼静止不动。 在23日晚上&#xff0c;我花了一些时间进行研究&#xff0c;并开始研究IDEA的Apache Camel插件的小原型。 它已经存在了我很长时间。 原因是Apache Camel为目录提供了有关工具的大量有用信息。 该目录包含有关每个Camel组…

网站 后台 数据 下载毕设做网站需要什么技术准备

LD_PRELOAD 来到首页发现有一句话直接就可以用蚁剑连接 根目录里有/flag但是不能看;命令也被ban了就需要绕过了 绕过工具在插件市场就可以下载 如果进不去的话 项目地址: #本地仓库;插件存放 antSword\antData\plugins 绕过选择 上传后我们点进去可以看到多了一个绕过的文件;…

photoshop网站模板下载大连百度推广怎么做

根据中华人民共和国法律&#xff0c;Bing 中国已经被政府有关部门要求在中国内地暂停 “搜索自动建议” 功能 30 天。作为全球性搜索平台&#xff0c;Bing 将持续致力于尊重法治与用户获取信息的权利&#xff0c;在遵守法律的前提下最大限度地帮助客户寻找所需信息。 Bing Chin…

上海网站怎么备案表简单 大气 网站模版

一、npm降级 1.接大版本号&#xff0c;降级到大版本最新的小版本 npm install npm5 -g 2.接指定版本号 npm install npm5.01.01 -g 二、npm升级 升级到最新版本 npm install npm -g 详细参考&#xff1a;nodejs与npm版本对应关系以及使用nvm管理node版本以及降npm版本-CSDN博…