Apakah ada metode untuk mencetak ke konsol tanpa baris baru? The console
objek dokumentasi tidak mengatakan apa-apa tentang itu:
console.log()
Mencetak ke stdout dengan baris baru. Fungsi ini dapat mengambil beberapa argumen dengan
printf()
cara -seperti. Contoh:console.log('count: %d', count);
Jika elemen formating tidak ditemukan dalam string pertama maka
util.inspect
digunakan pada setiap argumen.
node.js
console
console.log
Evan Carroll
sumber
sumber
console.log
sedang mencetak\n
ketika saya ingin mencetak karakter baris baru.` followed by an
n literal , ketika saya ingin menampilkan karakter baris baru yang sebenarnya.Juga, jika Anda ingin menimpa pesan di baris yang sama, misalnya dalam hitungan mundur, Anda bisa menambahkan '\ r' di akhir string.
sumber
process.stdout.write("Downloading " + data.length + " bytes\033[0G");
\033
dengan literal hex\x1b
seperti ini:\x1b[0G
. (yang bekerja dengan kode ketat dan non-ketat)Di konsol Windows (Linux juga), Anda harus mengganti
'\r'
dengan kode yang setara\033[0G
:Ini menggunakan urutan pelarian terminal VT220 untuk mengirim kursor ke kolom pertama.
sumber
[\] 39
dan kursor disorot pada karakter pertama:var spinner = '|/-\\'.split('');process.stdout.write("["+this.randomElement(spinner)+"] "+message+"\033[0G");
man console_codes
(di Linux atau online) dan referensi favorit saya adalah www2.phys.canterbury.ac.nz/dept/docs/manuals/unix/DEC_4.0e_Docs/… (99% dari kontennya masih berfungsi) . Hanya peringatan: Bersiaplah untuk menguji setiap percobaan pada beberapa terminal yang berbeda sebelum digunakan secara luas.Sebagai perluasan / peningkatan pada penambahan brilian yang dibuat oleh @rodowi di atas tentang kemampuan untuk menimpa baris:
Jika Anda tidak ingin kursor terminal ditempatkan pada karakter pertama, seperti yang saya lihat dalam kode saya, pertimbangkan melakukan hal berikut:
Dengan menempatkan bagian
\r
depan pernyataan cetak berikutnya kursor akan diatur ulang tepat sebelum string pengganti menimpa yang sebelumnya.sumber
util.print dapat digunakan juga. Baca: http://nodejs.org/api/util.html#util_util_print
Sebuah contoh:
sumber
util.print
sudah ditinggalkan sekarang(node:7616) DeprecationWarning: util.print is deprecated. Use console.log instead.
Tampaknya ada banyak jawaban yang menyarankan:
Log kesalahan harus dipancarkan pada:
Alih-alih gunakan:
Bagi siapa pun yang bertanya-tanya mengapa
process.stdout.write('\033[0G');
tidak melakukan apa-apa itu karenastdout
buffered dan Anda perlu menunggudrain
acara ( info lebih lanjut ).Jika write return
false
itu akan memunculkan suatudrain
event.sumber
Tidak satu pun dari solusi ini yang berfungsi untuk saya,
process.stdout.write('ok\033[0G')
dan hanya menggunakan'\r'
cukup buat baris baru tetapi jangan menimpa pada Mac OSX 10.9.2.EDIT: Saya harus menggunakan ini untuk mengganti baris saat ini:
sumber
Saya mendapat kesalahan berikut saat menggunakan mode ketat:
Solusi berikut berfungsi ( sumber ):
sumber