当前位置: 首页 > 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.dnsts.com.cn/news/84671.html

相关文章:

  • 网站建设实训心得phpwordpress 执行顺序
  • 高端网站定制公司rss订阅wordpress
  • 潍坊做网站建设的公司南京网站推广价格
  • 福安网站设计建筑网架结构图片
  • 营销型网站建设的原则做外贸生意是不是需要建网站
  • 科技资讯网站开发大纲残疾人无障碍网站怎么做
  • 正规的专业高端网站建设电子商务网站的作用
  • 广州网页设计网站设计工作一般多少工资
  • 创意中山网站建设asp.net ftp发布网站
  • 深度网站建设长春网站快照优化公司
  • 如何免费做公司网站十堰论坛网站
  • 青岛旅游网站建设如何创建一个属于自己的网站
  • 建个公司网站要多少钱广州建网站站公司
  • 平顶山建设公司网站做网站难度大吗
  • 电子商务网站建设合同山西网络公司公司
  • 大学英文网站建设举措网站经营许可备案号
  • 西部数码做的网站打不开哪里可以接网站开发项目做
  • 宿州做企业网站公司深圳设计人才网
  • 销售网站的技巧东莞英文网站制作
  • 云浮网站网站建设跨境电商公司招聘岗位及要求
  • 神马网站快速排名软件wordpress数据过滤
  • 做网站网站需要注意什么建网站多少钱建个网站需要怎么做
  • 安阳做网站网站策划的前景
  • 广州网站建设484186手机百度搜索引擎
  • 赣州市经开区住房和建设局网站网站建设的重要性
  • 网站建设外包协议wordpress 浏览计数
  • 营销网站建设哪个平台好网站模板中文版
  • 猪八戒网可以做福彩网站吗门户网站营销
  • 阿里巴巴注册网站首页搜索排名提升
  • 长春手机网站网站帮助页面设计