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

乐清网站制作公司企业网站优化应该怎么做

乐清网站制作公司,企业网站优化应该怎么做,代做土木工程专业毕业设计网站,优化seo排名笔记-基本使用 一、初始Promise1. 抽象表达:2. 具体表达:为什么要用 Promise?promise的基本流程 二、fs读取文件三、AJAX请求四、Promise封装fs模块五、util.promisify方法六、Promise封装AJAX操作 一、初始Promise 1. 抽象表达: 1. Promise 是一门新的技术(ES6 规范) 2. Pr… 笔记-基本使用 一、初始Promise1. 抽象表达:2. 具体表达:为什么要用 Promise?promise的基本流程 二、fs读取文件三、AJAX请求四、Promise封装fs模块五、util.promisify方法六、Promise封装AJAX操作 一、初始Promise 1. 抽象表达: 1. Promise 是一门新的技术(ES6 规范) 2. Promise 是 JS 中进行异步编程的新解决方案备注旧方案是单纯使用回调函数 2. 具体表达: 1. 从语法上来说: Promise 是一个构造函数 2. 从功能上来说: promise 对象用来封装一个异步操作并可以获取其成功/失败的结果值 为什么要用 Promise? 指定回调函数的方式更加灵活 支持链式调用, 可以解决回调地狱问题 promise的基本流程 指定回调函数的方式更加灵活支持链式调用, 可以解决回调地狱问题 实例代码说明 调用函数resolve()、reject()还可以传参数但是函数名不一定为resolve、reject可以自己设定但一般默认为这两个。 注意这里需要用then方法进行调用同理这里的value、reason形参名不一定为这个可以自定义但一般默认这两个。 bodydiv classcontainerh2 classpage-headerPromise 初体验/h2button classbtn btn-primary idbtn点击抽奖/button/divscript//生成随机数function rand(m,n){return Math.ceil(Math.random() * (n-m1)) m-1;}/**点击按钮, 1s 后显示是否中奖(30%概率中奖)若中奖弹出 恭喜恭喜, 奖品为 10万 RMB 劳斯莱斯优惠券若未中奖弹出 再接再厉*///获取元素对象const btn document.querySelector(#btn);//绑定单击事件btn.addEventListener(click, function(){//定时器// setTimeout(() {// //30% 1-100 1 2 30// //获取从1 - 100的一个随机数// let n rand(1, 100);// //判断// if(n 30){// alert(恭喜恭喜, 奖品为 10万 RMB 劳斯莱斯优惠券);// }else{// alert(再接再厉);// }// }, 1000);//Promise 形式实现// resolve 解决 函数类型的数据// reject 拒绝 函数类型的数据const p new Promise((resolve, reject) {setTimeout(() {//30% 1-100 1 2 30//获取从1 - 100的一个随机数let n rand(1, 100);//判断if(n 30){resolve(n); // 将 promise 对象的状态设置为 『成功』}else{reject(n); // 将 promise 对象的状态设置为 『失败』}}, 1000);});console.log(p);//调用 then 方法p.then((value) {alert(恭喜恭喜, 奖品为 10万 RMB 劳斯莱斯优惠券, 您的中奖数字为 value);}, (reason) {alert(再接再厉, 您的号码为 reason);});});/script /body 二、fs读取文件 //1. 引入 fs 模块const fsrequire(fs);//2. 调用方法读取文件 fs.readFile(resources/为学.md,(err,data){//如果失败则抛出错误if(err) throw err;console.log(data.toString()); });Promise形式读取文件 const fs require(fs); let p new Promise((resolve , reject) {fs.readFile(./resource/content.txt, (err, data) {//如果出错if(err) reject(err);//如果成功resolve(data);}); });//调用 then p.then(value{console.log(value.toString()); }, reason{console.log(reason); }); 运行结果 需要注意的是这里必须使用toString()方法不然输出的就是Buffer文件数据 三、AJAX请求 用promise对AJAX方法进行了一个封装 完整代码 bodydiv classcontainerh2 classpage-headerPromise 封装 AJAX 操作/h2button classbtn btn-primary idbtn点击发送 AJAX/button/divscript//接口地址 https://api.apiopen.top/getJoke//获取元素对象const btn document.querySelector(#btn);btn.addEventListener(click, function(){//创建 Promiseconst p new Promise((resolve, reject) {//1.创建对象const xhr new XMLHttpRequest();//2. 初始化xhr.open(GET, https://api.apiopen.top/getJoke);//3. 发送xhr.send();//4. 处理响应结果xhr.onreadystatechange function(){if(xhr.readyState 4){//判断响应状态码 2xx if(xhr.status 200 xhr.status 300){//控制台输出响应体resolve(xhr.response);}else{//控制台输出响应状态码reject(xhr.status);}}}});//调用then方法p.then(value{console.log(value);}, reason{console.warn(reason);});});/script /body 结果展示 四、Promise封装fs模块 封装一个函数mineReadFlie读取文件内容参数path文件路径返回promise对象 function mineReadFile(path){return new Promise((resolve, reject) {//读取文件require(fs).readFile(path, (err, data) {//判断if(err) reject(err);//成功resolve(data);});}); }mineReadFile(./resource/content.txt) .then(value{//输出文件内容console.log(value.toString()); }, reason{console.log(reason); }); 结果展示 五、util.promisify方法 将回调函数的方法转化为promise函数的方法使得代码更简洁 //引入 util 模块 const util require(util); //引入 fs 模块 const fs require(fs); //返回一个新的函数 let mineReadFile util.promisify(fs.readFile);mineReadFile(./resource/content.txt).then(value{console.log(value.toString()); }); 六、Promise封装AJAX操作 封装一个函数sendAJAX 发送GET Ajax请求参数URL返回结果Promise对象 bodyscript/*** 封装一个函数 sendAJAX 发送 GET AJAX 请求* 参数 URL* 返回结果 Promise 对象*/function sendAJAX(url){return new Promise((resolve, reject) {const xhr new XMLHttpRequest();xhr.responseType json;xhr.open(GET, url);xhr.send();//处理结果xhr.onreadystatechange function(){if(xhr.readyState 4){//判断成功if(xhr.status 200 xhr.status 300){//成功的结果resolve(xhr.response);}else{reject(xhr.status);}}}});}sendAJAX(https://api.apiopen.top/getJoke).then(value {console.log(value);}, reason {console.warn(reason);});/script /body
http://www.dnsts.com.cn/news/4065.html

相关文章:

  • 溧阳网站设计jsp网页模板
  • 做百度网站分录做推广的公司
  • 电子商务网站项目预算广州网站开发水平广州亦客网络
  • 中小型网站建设 教案wordpress 搜索没反应
  • 文化馆的网站怎么建设网站功能及报价
  • 什么网站可以做特价活动网站建站的标准
  • 网站设计技能培训网站搭建分站需要多少钱
  • 手机网站与pc网站的区别阿里云的云服务器做网站用哪种
  • 建网站的好处直播网站建设项目策划书
  • 举报企业网站用个人信息备案网站开发方向行业现状
  • 广州建设网站技术android 登录wordpress
  • 做网站的市场wordpress 关闭功能
  • 建设网站程序下载15个常见关键词
  • 外贸网站官网怎么做广安网站开发
  • 专门做牛肉的网站网站建设产品图
  • 中国网站建设市场排名安徽合肥做网站的公司有哪些
  • 上海做网站的价格软件开发工具属于哪种类型的软件
  • 门户网站的优点怎么注册个人工作室
  • 做推广的网站微信号域名可以绑定网站吗
  • 微信的企业网站模板wordpress文章新窗口
  • 大型网站技术架构:核心原理与案例分析怎么做淘宝网站教程
  • 公司网站的管理和维护强化网站建设
  • 电子商务网站建设分析论文企业微信开发者
  • 重庆网站推广怎么样wordpress漂浮插件
  • 网站头尾一样的怎么做最好南宁seo优化公司
  • 云南建投第七建设有限公司网站市场体系建设司在官方网站
  • 网站设计师工作室网络组建管理与维护
  • 做水产的都用什么网站网站集约化建设要求
  • 抽奖网站怎么做qq说说赞在线自助下单网站
  • asp跳转到别的网站wordpress设置阅读权限