为了账号安全,请及时绑定邮箱和手机立即绑定

进击Node.js基础(二)

Scott 全栈工程师
难度中级
时长 2小时 4分
学习人数
综合评分9.60
153人评价 查看评价
9.8 内容实用
9.4 简洁易懂
9.6 逻辑清晰
  • 当在开头写<!DOCTYPE>时,ball.style.marginLeft = marginLeft后面可以不加px,动画照样运行。 但是当在开头写<!DOCTYPE html>时,ball.style.marginLeft = marginLeft后面就必须加上+'px',动画才能运行。
    查看全部
  • 不需要安装bluebird,比较新的浏览器已经支持Promise,因此不需要引入bluebird, 也不需要加 var Promise = window.Promise. 另外,_animate()不要传参数,也不用在外面调用一次,直接写成立即执行函数,即这样: (function _animate() { ........................ })();
    查看全部
  • 谷百一下搬运笔记: 2015年发布了ES6标准,所谓 Promise,就是ES6标准的一个对象,用来传递异步操作的消息。它代表了某个未来才会知道结果的事件(通常是一个异步操作),并且这个事件提供统一的 API,可供进一步处理。 有了 Promise 对象,就可以将异步操作以同步操作的流程表达出来,避免了层层嵌套的回调函数。此外,Promise 对象提供统一的接口,使得控制异步操作更加容易。 var promise = new Promise(function(resolve, reject) { if (/* 异步操作成功 */){ resolve(value); } else { reject(error); } }); promise.then(function(value) { // success }, function(value) { // failure }); Promise函数接受一个函数作为参数,该函数的两个参数分别是 resolve 方法和 reject 方法。 如果异步操作成功,则用 resolve 方法将 Promise 对象的状态,从「未完成」变为「成功」(即从 pending 变为 resolved); 如果异步操作失败,则用 reject 方法将 Promise 对象的状态,从「未完成」变为「失败」(即从 pending 变为 rejected)。
    查看全部
  • //#用自己的方法重写这段代码 let ball = document.getElementsByClassName("ball");//执行效率比querySelector、querySelectorAll高 //使用es6语法 let promiseAnimate = (ball,distance)=>{ distance = Number(distance)||0;//防止输入的不是数字,而是字符串 return new Promise ((resolve,reject)=>{ //函数自执行 (function _animate(){ let marginLeft = parseInt(ball.style.marginLeft,10)||0; //不使用递归,效率更加高 let t = setInterval(()=>{ if(marginLeft === distance){ clearInterval(t); resolve("结束:"+ new Date().getTime());//结束时,输出时间戳 }else{ marginLeft < distance ? marginLeft++ : marginLeft--; ball.style.marginLeft = marginLeft+"px"; } }, 13) }()) }) }
    查看全部
  • Buffer在nodejs中用来处理二进制的数组(js字符串是用utf-8存储的,处理二进制的能力是很弱的,而网络层对资源的请求,响应等基本以二进制来进行交互)创建一个专门存储二进制的缓存区,并提供了一些方法对这些缓存区的数据做进一步的处理 buffer在nodejs里可全局访问 buffer实例化 1. new Buffer('hello 你好');//以默认编码格式utf-8进行字符转换 2. new Buffer('hello 你好','base64');//将默认编码格式修改为base64 3. var buf = new Buffer(8);//设置缓存区的大小 buf.length; //8 4. var buf = new Buffer('12345678'); console.log(buf) //buf长度为8 5. var buf = new Buffer(7); buf.write('12345678'); console.log(buf) //只要指定了buf长度,超出了都不会被缓存 6. var buf = new Buffer([1,2,3,4]);//经过数组初始化 console.log(buf[1])//值为2. 可以通过下标来访问,如果值为小数,会直接取整数。
    查看全部
  • cb&&cb() 是指如果cb不为null,即有传入方法时,执行cb()方法,这里用了&&运算符的短路原则,避免当cb为空时执行了cb()方法而报错。 学习了!
    查看全部
  • ball.style.marginLeft = marginLeft + 'px'
    查看全部
  • 关于http加密传输,不需要自己在本地生成ssh。 node.js有https内置对象了: https://nodejs.org/api/https.html 关于课程源码:https://github.com/CaiYiLiang/Node-crawler
    查看全部
  • poolSize:内存载体的容量 isBuffer:是否为buffer类型对象 compare:用来判断两个buffer对象的相对位置 isEncoding:判断nodejs是否支持某种编码 concat:将几个buffer对象连接创建一个新的buffer对象 byteLength:获得指定编码下字符串所占的字节数
    查看全部
  • ball.style.marginLeft = marginLeft + 'px';
    查看全部
  • 用es6的async/await改了一下: <script> var ball1 = document.querySelector(".ball1") var ball2 = document.querySelector(".ball2") var ball3 = document.querySelector(".ball3") const promiseAnimate = function(ball,distance){ return new Promise (function(revole,reject){ var timer1 = setInterval(function(){ var marginLeft = parseInt(ball.style.marginLeft,10) console.log(ball.style.marginLeft) if(marginLeft === distance){ clearInterval(timer1) revole() }else{ if(marginLeft < distance){ marginLeft++ }else{ marginLeft-- } ball.style.marginLeft = marginLeft +"px" } },15) }) } const myAnimate = async function(){ await promiseAnimate(ball1,100) await promiseAnimate(ball2,200) await promiseAnimate(ball3,300) await promiseAnimate(ball3,150) await promiseAnimate(ball2,150) await promiseAnimate(ball1,150) } myAnimate() </script>
    查看全部
  • Stream的种类 1. Readable (可读流) pause, resume 2. Writable (可写流) 3. Duplex (双工流) 可读可写 4. Transform (转换流) 可读可写, 不保存数据, 处理流经的数据
    查看全部
  • ES6的写法,能少几行代码! "use strict" let stream=require('stream'); class ReaderStream extends stream.Readable{ constructor(){ super(); this._cached=new Buffer(''); } _read(){ this.push('I'); this.push('Love'); this.push('Mock\n'); this.push(null); } } class WriteStream extends stream.Writable{ _write(chuck,encode,cb){ console.log(chuck.toString()) cb(); } } class Transform extends stream.Transform{ _transform(chunk,encode,cb){ this.push(chunk); cb(); } _flush(cb){ this.push('oh Yeah') cb(); } } let read=new ReaderStream(); let write = new WriteStream(); let transform = new Transform(); read.pipe(transform).pipe(write);
    查看全部
  • 放大法大使馆富商大贾
    查看全部
    2 采集 收起 来源:Node.js课程前言

    2016-03-24

  • resume()  在有‘readable’监听事件时,不生效

    查看全部
首页上一页1234567下一页尾页

举报

0/150
提交
取消
课程须知
本课程是一个系列课程,前导课程是《进击 Node.js 基础(一)》,所以建议小伙伴们学习本课程之前先把它拿下。
老师告诉你能学到什么?
1、了解 Promise 2、横扫 Nodejs API:Buffer、API-Stream

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!