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

乐清网站制作公司建网站要多少钱 优帮云

乐清网站制作公司,建网站要多少钱 优帮云,wordpress 创建栏目,国内主机wordpress笔记-基本使用 一、初始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.hkea.cn/news/14542200/

相关文章:

  • 网站服务器提供什么服务wordpress数据
  • 网站建设安全级别wordpress md风格主题
  • 在服务器做网站建站工具箱接线图
  • 专业制作网站是什么深圳公司注册资金实缴要求
  • 珠海专业做网站制作视觉传达设计培训机构
  • 30g月流量网站wordpress外链图片无法显示
  • 郑州企业建站模板视频模板免费制作
  • 中国临沂网站优化重庆seo快速优化软件
  • 网站后台帐号密码破解网页设计尺寸分辨率
  • 网站推广教程分享即墨有做网站的吗
  • 重庆手机网站推广价格郑州小型网站制作公司
  • 天河区pc端网站建设wordpress高级套餐
  • 网站建设成都创新互联wordpress通栏图片插件
  • ASP.NET2.0网站开发全程解析公司logo标志设计免费
  • 医学网站建设方案网站转化率低
  • 免费网站建设平台哪个好网站培训视频
  • 设计师网站官网阳泉推广型网站建设
  • 广州企业网站建设费用wordpress is ssl
  • 我想建立个网站数据怎么办潍坊智能建站模板
  • 企业网站建设制作多少钱婚介所网站开发费用
  • 网站怎么做才可以做评价wordpress 在线编辑器
  • 网站的设计技术策划河南网站建设公司哪家好
  • 蒙阴做网站怎样去掉底部的wordpress
  • 网站关键字在哪里设置西安互联网网站搭建公司排名
  • 马鞍山市直网站集约化建设深圳市政工程招标网
  • 北京科技网站建设网站建设所需服务器
  • 网店托管代运营费用多少钱seo的网站建设
  • wordpress建站赚钱太原手机网站设计
  • 做门户网站源码wordpress代码如何运行安装
  • 外贸网站怎么找客户网站怎么做成小程序