0
它是變換流節點js的簡單示例。變換流節點中的回調函數js
代碼:
const { Transform } = require('stream');
const transtream = new Transform({
transform(chunk, encoding, callback){
this.push(chunk.toString().toUpperCase());
callback()
}
});
process.stdin.pipe(transtream).pipe(process.stdout);
這工作得很好:
Input: hi this is me
Output: HI THIS IS ME
Input: hi this is me again
Output: HI THIS IS ME AGAIN
現在,如果我不調用回調函數,這個程序並不像以前那樣工作。
新代碼:
const { Transform } = require('stream');
const transtream = new Transform({
transform(chunk, encoding, callback){
this.push(chunk.toString().toUpperCase());
//callback()
}
});
process.stdin.pipe(transtream).pipe(process.stdout);
現在,當我給輸入,它的工作原理是第一次,那麼它停止轉換數據。所以沒有輸出第二個輸入。
Input: hi this is me
Output: HI THIS IS ME
Input: hi this is me again
Input: hey
問題:爲什麼需要回調?爲什麼程序在未被調用時會改變行爲?
你在問爲什麼需要回調? –
你能澄清問題是什麼嗎? – richsilv
回調函數在讀取數據流時將數據壓入嗎? –