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

进击Node.js基础(二)

Scott 全栈工程师
难度中级
时长 2小时 4分
学习人数
综合评分9.60
153人评价 查看评价
9.8 内容实用
9.4 简洁易懂
9.6 逻辑清晰
  • 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
提交
取消
课程须知
本课程是一个系列课程,前导课程是《进击 Node.js 基础(一)》,所以建议小伙伴们学习本课程之前先把它拿下。
老师告诉你能学到什么?
1、了解 Promise 2、横扫 Nodejs API:Buffer、API-Stream

微信扫码,参与3人拼团

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

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