第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

一個(gè)nodejs stream詭異的行為, 猜測(cè)和事件循環(huán)有關(guān)系, 求解釋?

一個(gè)nodejs stream詭異的行為, 猜測(cè)和事件循環(huán)有關(guān)系, 求解釋?

慕田峪4524236 2019-03-19 18:44:41
當(dāng)前目錄下準(zhǔn)備一個(gè)test.txt, 寫入一些東西, 比如>It's for test<分別執(zhí)行代碼:注釋掉延時(shí)為 3 ms的代碼塊, 輸出dest.txt, 內(nèi)容為>It's for test<注釋掉延時(shí)為 2 ms的代碼塊, 輸出dest.txt, 內(nèi)容為>It's for test<>It's for test<以下為代碼const fs = require('fs')const from = fs.createReadStream('test.txt')const to = fs.createWriteStream('dest.txt', {     flags: 'a'})from.pipe(to, {     end: false})from.on('end', () => {    console.log('end') })// setTimeout(() => {//     from.pipe(to)//this won't work, if time >= 3// }, 3)// setTimeout(() => {//     from.pipe(to)//this will work, if time < 3// }, 2)只觸發(fā)end事件一次不同時(shí)間延遲, 輸出不同, 行為十分詭異, 求解釋?
查看完整描述

2 回答

?
斯蒂芬大帝

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超8個(gè)贊

通過I/O讀取字符串到緩沖區(qū)

  1. timers階段沒有callback執(zhí)行,寫入WriteStream,timers階段檢測(cè)到callback,執(zhí)行callback,然鵝ReadStream沒數(shù)據(jù),pipe沒有效果。

  2. timers階段檢測(cè)到callback,執(zhí)行callback,ReadStream數(shù)據(jù)還在,pipe有效果。

process.stdout測(cè)試

const fs = require('fs')const from = fs.createReadStream('test.txt')from.pipe(process.stdout, {
    end: false})from.on('end', () => {    console.log('end')
})

setTimeout(() => {    console.log('timer callback')    from.pipe(process.stdout) //this won't work, if time >= 3}, 3)// setTimeout(() => {//     console.log('timer callback')//     from.pipe(process.stdout) //this will work, if time < 3// }, 2)


查看完整回答
反對(duì) 回復(fù) 2019-03-19
?
紅糖糍粑

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超6個(gè)贊

默認(rèn)情況下, 在源流發(fā)出時(shí)stream.end()在目標(biāo)Writable流上調(diào)用,以便目標(biāo)不再可寫。要禁用此默認(rèn)行為, 可以將該選項(xiàng)作為傳遞,從而使目標(biāo)流保持打開狀態(tài):

reader.pipe(writer, { end: false });

上面說的很清楚了,設(shè)置false是保持打開狀態(tài),不是你理解的可以一直編輯,也是有時(shí)間限制的
由于Js是異步處理,所有程序同步執(zhí)行,寫入和settimeout也一樣,所以當(dāng)你設(shè)置延遲時(shí)長(zhǎng)高的時(shí)候,是沒辦法注入進(jìn)去的。
謝謝


查看完整回答
反對(duì) 回復(fù) 2019-03-19
  • 2 回答
  • 0 關(guān)注
  • 782 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)