-
当在开头写<!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);查看全部
-
放大法大使馆富商大贾查看全部
-
resume() 在有‘readable’监听事件时,不生效
查看全部
举报
0/150
提交
取消