-
promise A和A+的不同點(diǎn)查看全部
-
Promise實(shí)現(xiàn)ajax var getJSON = function(url){ var promise = new Promise(function(resolve,reject){ var client = new XMLHttpRequest(); client.open('GET',url); client.onreadystatechange = handler; client.responseType = 'json'; client.setRequestHeader('Accept','application/json'); client.send(); function handler(){ if(this.readyState !== 4){ return; } if(this.status === 200){ resolve(this.response); }else{ reject(new Error(this.statusText)); } } }); return promise; }; // getJSON('/posts.jons').then(function(json){ consoloe.log(json); },function(error){ console.log('出錯(cuò)了'); });查看全部
-
異步加載圖片 Promise function loadImageAsync(url){ return new Promise(function(resolve,reject){ var image = new Image(); image.onload = function(){ resolve(image); }; image.onerror = function(){ reject(new Error('Could not load image at' + url)); }; image.src = url; }); }查看全部
-
利用setTimeout做類似遞歸算法查看全部
-
node.js查看全部
-
Buffer在nodejs中用來(lái)處理二進(jìn)制的數(shù)組(js字符串是用utf-8存儲(chǔ)的,處理二進(jìn)制的能力是很弱的,而網(wǎng)絡(luò)層對(duì)資源的請(qǐng)求,響應(yīng)等基本以二進(jìn)制來(lái)進(jìn)行交互)創(chuàng)建一個(gè)專門存儲(chǔ)二進(jìn)制的緩存區(qū),并提供了一些方法對(duì)這些緩存區(qū)的數(shù)據(jù)做進(jìn)一步的處理 buffer在nodejs里可全局訪問(wèn) buffer實(shí)例化 1. new Buffer('hello 你好');//以默認(rèn)編碼格式utf-8進(jìn)行字符轉(zhuǎn)換 2. new Buffer('hello 你好','base64');//將默認(rèn)編碼格式修改為base64 3. var buf = new Buffer(8);//設(shè)置緩存區(qū)的大小 buf.length; //8 4. var buf = new Buffer('12345678'); console.log(buf) //buf長(zhǎng)度為8 5. var buf = new Buffer(7); buf.write('12345678'); console.log(buf) //只要指定了buf長(zhǎng)度,超出了都不會(huì)被緩存 6. var buf = new Buffer([1,2,3,4]);//經(jīng)過(guò)數(shù)組初始化 console.log(buf[1])//值為2. 可以通過(guò)下標(biāo)來(lái)訪問(wèn),如果值為小數(shù),會(huì)直接取整數(shù)。查看全部
-
Buffer.compare(a,b) 返回值是0就表示兩個(gè)buffer相同查看全部
-
push(null)表示結(jié)束buffer數(shù)組查看全部
-
pipe方法會(huì)自動(dòng)監(jiān)聽(tīng)data和end時(shí)間,還可以自動(dòng)控制后端壓力,在客戶端鏈接緩慢時(shí),自動(dòng)控制流量,并且只有在pipe末端的目標(biāo)流真正需要數(shù)據(jù)的時(shí)候才會(huì)從源頭取得數(shù)據(jù)查看全部
-
.write方法返回boolean值 如果流需要等待 'drain' 事件觸發(fā)才能繼續(xù)寫入數(shù)據(jù),這里將返回 false ; 否則返回 true。查看全部
-
buffer 方法查看全部
-
// 用es6實(shí)現(xiàn) const stream = require('stream') class ReadStream extends stream.Readable { constructor () { super() } _read () { this.push('i') this.push('love') this.push('imooc \n') this.push(null) } } class writStream extends stream.Writable { constructor () { super() } _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('oh yeah') cb() } } const rs = new ReadStream() const ws = new writStream() const ts = new TransformStream() rs.pipe(ts).pipe(ws)查看全部
-
poolSize:內(nèi)容載體的容量。 isBuffe:r判斷這個(gè)對(duì)象是否為Buffer對(duì)象,很對(duì)時(shí)候我們需要判斷數(shù)據(jù)類型,才會(huì)有后續(xù)的操作。 compare:用來(lái)判斷兩個(gè)Buffer對(duì)象的相對(duì)位置,一般用來(lái)做按字符串來(lái)排序之類的。 isEncoding:用來(lái)判斷nodejs是否支持某種編碼。 concat:將幾個(gè)Buffer對(duì)象連接創(chuàng)建成一個(gè)新的Buffer對(duì)象。我們可以手動(dòng)分配合并后Buffer對(duì)象的空間大小,但是空間不夠的話,數(shù)據(jù)會(huì)被截?cái)唷?byteLength:用來(lái)獲取指定編碼下字符串所占的字節(jié)數(shù)。由于字符串的編碼不同,字符串長(zhǎng)度和字節(jié)長(zhǎng)度也是不同的。查看全部
-
https協(xié)議是基于SSL/TLS之上的http協(xié)議,所有的數(shù)據(jù)都是在SSL/TLS的封裝之上傳輸?shù)?。也就是說(shuō),HTTPS協(xié)議是在HTTP協(xié)議的基礎(chǔ)之上添加了SSL/TLS握手以及數(shù)據(jù)加密傳輸。簡(jiǎn)單來(lái)說(shuō),在nodejs里面,HTTPS就是專門用來(lái)處理加密訪問(wèn)的。同事HTTP和HTTPS在這兩個(gè)模塊的API和使用方式幾乎是一樣的,也就是使用的時(shí)候,在搭建HTTPS服務(wù)器的時(shí)候,需要一個(gè)SSL證書。查看全部
-
bluebird查看全部
舉報(bào)
0/150
提交
取消