-
Promise A与A+规范查看全部
-
只有图查看全部
-
var buf = new Buffer(8) 分配一段内存空间,放内容超过长度的部分是不会被缓冲的 buf.length 8 缓存区大小 var buf = new Buffer('12345678')查看全部
-
用new方法创建的实例代表了v8引擎分配的一段内存,基本上是一个数组,成员都是整数值 new Buffer("hello 慕课网") 在buffer对象与字符串相互转换的时候是需要指定编码格式的,如果没有指定,默认是按照utf-8的格式进行转换,new Buffer("hello 慕课网", "base64")查看全部
-
buffer缓冲,在nodejs里处理二进制的数据。为什么要有buffer呢,因为js的字符串是以utf-8的编码存储的,处理二进制的能力是很弱的,而网络层对于不同资源、文件的请求、响应都是用二进制这种方式进行交互的,所以nodejs就有一个接口来创建存放二进制数据的缓存区,并提供一些方法来对缓存区的数据进行进一步的处理。Buffer在nodejs中是可以全局访问的,不需要require来加载。查看全部
-
<head> <title>Promise animation</title> <style> .ball{ width: 40px; height: 40px; border-radius: 20px; margin-left: 0px; } .ball1{ background: red; } .ball2{ background: yellow; } .ball3{ background: green; } </style> </head>查看全部
-
<body> <div class="ball ball1"></div> <div class="ball ball2"></div> <div class="ball ball3"></div> <script> var ball1 = document.querySelector(".ball1"); var ball2 = document.querySelector(".ball2"); var ball3 = document.querySelector(".ball3"); var animation = function(ball, distance, callback){ setTimeout(function(){ var marginLeft = ball.style.marginLeft.split("px")[0] - 0; if(marginLeft === distance){ callback && callback(); } else { marginLeft > distance ? marginLeft-- : marginLeft++; ball.style.marginLeft = marginLeft; animation(ball, distance, callback) } }, 13) } animation(ball1, 50, function(){ animation(ball2, 150, function(){ animation(ball3, 300, function(){ alert("ok") }) }) }) </script> </body>查看全部
-
stream 读比写快 苯方法查看全部
-
啦啦啦查看全部
-
function promiseAnimate(ball,distance){ return new Promise(function(resolve,reject){ function _antimate(){ window.setTimeout(function(){ var marginLeft = parseInt(ball.style.marginLeft,10); if(marginLeft===distance){ return resolve; }else{ if(marginLeft<distance){ marginLeft++; }else if(marginLeft>distance){ marginLeft--; } ball.style.marginLeft=marginLeft+'px'; _antimate(); } },13); }; _antimate(); }); promiseAnimate(ball1, 100) .then(function(){ return promiseAnimate(ball2, 200) }) .then(function(){ return promiseAnimate(ball3, 300) }) .then(function(){ return promiseAnimate(ball3, 150) }) .then(function(){ return promiseAnimate(ball3, 150) }) .then(function(){ return promiseAnimate(ball1, 150) })查看全部
-
划重点查看全部
-
promise库查看全部
-
对于JavaScript来说,对Unicode编码的数据很容易处理的但是对于二进制数据就没什么处理方法了。但是在一些TCP数据流或者在操作一些文件数据流的时候,字节流的处理方法还是必须的。nodeJS中便出了处理的策略方法~提供了与String类似对等的全局构造函数Buffer(与其说与String对等,还不如说与Array类似但是有些不同方面还是需要注意),全局那么自然就不要每次的require了。Buffer则node中储存二进制数据的中介者。查看全部
-
"use strict"; const stream = require("stream"); class ReadStream extends stream.Readable{ constructor(){ super(); } _read(){ this.push("I "); this.push("Love "); this.push("You!\n"); this.push(null); } } class WriteStream extends stream.Writable{ constructor(){ super(); // this._cached = Buffer.from(""); } _write(chunk, encode, cb){ console.log(chunk.toString()); cb(); } } class TransformStream extends stream.Transform{ constructor(){ super(); } _transform(chunk, encode, cb){ this.push(chunk); cb(); } _flush(cb){ this.push("I Love You To!"); cb(); } } let readStream = new ReadStream(); let writeStream = new WriteStream(); let transformStream = new TransformStream(); readStream.pipe(transformStream).pipe(writeStream);查看全部
-
cb&&cb() 是指如果cb不为null,即有传入方法时,执行cb()方法,这里用了&&运算符的短路原则,避免当cb为空时执行了cb()方法而报错。 学习了!查看全部
举报
0/150
提交
取消