2016-01-02 7 views
12

fonksiyonları:node.js stdout'u ClearLine() ve cursorTo() Bu iki process.stdout fonksiyonlarını bkz node.js öğretici itibaren

process.stdout.clearLine(); 
process.stdout.cursorTo(0); 

Ama daha yeni node.js sürümünü kullanıyorum (4.2.4) ve bu işlevler mevcut değildir. process.stdout.clearLine is not a function ve process.stdout.cursorTo is not a function'u alırım.

node.js sürüm 4.2.4 üzerinde clearLine ve cursorTo eş değeri nedir?

DÜZENLEME:

olanlar çalışmıyor ya: Ben olsun

process.readline.clearLine(); 
process.readline.cursorTo(0); 

function writeWaitingPercent(p) { 
    process.readline.clearLine(); 
    process.readline.cursorTo(0); 
    process.stdout.write(`waiting ... ${p}%`); 
} 

Cannot read property 'clearLine' of undefined

cevap

15

Bu çözüm :

Birincisi, taleb gerektirir:

var readline = require('readline'); 

Sonra böyle cursorTo kullanın:

o benim durumumda işe yaramaz çünkü, ClearLine yorumladı ettik
function writeWaitingPercent(p) { 
    //readline.clearLine(process.stdout); 
    readline.cursorTo(process.stdout, 0); 
    process.stdout.write(`waiting ... ${p}%`); 
} 

(imleci geri hareket cursorTo başlangıç)

+4

Aynı problemi yaşadım. Terminalden çalışırken, çalışır, WebStorm'dan koştuğumda, readline'a ihtiyacım var ve metodunu kullanmalıyım. Neden? – ocram

+0

"clearLine" ve "cursorTo" ifadesi, "process.stdout" öğesi bir tty olmadığında tanımsız olduğu için. WebStorm'daki Düğüm/NPM konsolu, giriş/çıkış akışları yeniden yönlendirmeyle düğüm işlemi başlatıldığı için Tty'dir. Lütfen https://youtrack.jetbrains.com/issue/WEB-1933 adresine bakın. – lena

-5

process.readline.cursorTo ve process.readline.clearLine

Node v4.2.4 Documentation

+0

Üzgünüz, bu işe yaramıyor. Yeni düzenlemeye bakın – trogne

+0

Weird, test etmedi, ancak bunu belgelere ekledi. –

+0

Soruları yanıtlarken, belgelere başvurmayın; bunun yerine örnekleri göster. –

9

Node.js'nin bir parçası olan Readline module şimdi readline.cursorTo(stream, x, y), readline.moveCursor(stream, dx, dy) ve readline.clearLine(stream, dir) yöntemini sağlar. s. Daktilo versiyonu ile


, kod aşağıdaki gibi görünmelidir:

import * as readline from 'readline' 
// import readline = require('readline') also works 

/* ... */ 

function writeWaitingPercent(p: number) { 
    readline.clearLine(process.stdout, 0) 
    readline.cursorTo(process.stdout, 0, null) 
    let text = `waiting ... ${p}%` 
    process.stdout.write(text) 
} 

önceki kod aşağıdaki JavaScript (ES6) koduna transpile olacaktır:

const readline = require('readline'); 

/* ... */ 

function writeWaitingPercent(p) { 
    readline.clearLine(process.stdout, 0); 
    readline.cursorTo(process.stdout, 0, null); 
    let text = `waiting ... ${p}%`; 
    process.stdout.write(text); 
} 

Alternatif olarak, aşağıdaki kod kullanabilirsiniz Javascript için (ES6):

const readline = require('readline'); 

/* ... */ 

function waitingPercent(p) { 
    readline.clearLine(process.stdout, 0) 
    readline.cursorTo(process.stdout, 0) 
    let text = `waiting ... ${p}%` 
    process.stdout.write(text) 
}