Nếu kết quả của một số phép tính javascript là một mảng gồm 10.000 phần tử, Node.js sẽ in lại phần này. Làm thế nào để ngăn chặn nó làm như vậy?Ngăn thay đổi Node.js từ đầu ra in
Cảm ơn
Nếu kết quả của một số phép tính javascript là một mảng gồm 10.000 phần tử, Node.js sẽ in lại phần này. Làm thế nào để ngăn chặn nó làm như vậy?Ngăn thay đổi Node.js từ đầu ra in
Cảm ơn
Tại sao bạn không chỉ thêm ; null;
vào biểu thức của mình?
Như trong
new Array(10000); null;
mà in
null
hoặc thậm chí ngắn hơn, sử dụng ;0;
Tôi đã nói trong nhận xét cho câu hỏi này mà bạn có thể muốn thực thi lệnh của bạn trong một chức năng ẩn danh. Giả sử bạn có một số thủ tục lặp lại trả về một số loại kết quả. Như thế này:
var some_array = [1, 2, 3];
some_array.map(function(){
// It doesn't matter what you return here, even if it's undefined
// it will still get into the map and will get printed in the resulting map
return arguments;
});
Điều đó cho chúng ta kết quả này:
[ { '0': 1,
'1': 0,
'2': [ 1, 2, 3 ] },
{ '0': 2,
'1': 1,
'2': [ 1, 2, 3 ] },
{ '0': 3,
'1': 2,
'2': [ 1, 2, 3 ] } ]
Nhưng nếu bạn quấn gọi map
phương pháp thành một chức năng ẩn danh tự gọi, tất cả các đầu ra bị mất:
(function(){
some_array.map(function() {
return arguments;
});
})();
Mã này sẽ cho chúng tôi kết quả này:
undefined
vì chức năng ẩn danh không trả về bất cứ điều gì.
Gán kết quả cho một biến khai báo với var
. Câu hỏi var
luôn trả về undefined
.
> new Array(10)
[ , , , , , , , , , ]
> var a = new Array(10)
undefined
Bạn có thể bắt đầu REPL và thay đổi bất kỳ điều gì làm phiền bạn. Ví dụ: bạn có thể yêu cầu không in undefined
khi biểu thức không có kết quả. Hoặc bạn có thể bọc các đánh giá của các biểu thức và ngăn chặn chúng từ trả lại kết quả. Nếu bạn thực hiện cả hai việc này cùng một lúc, bạn sẽ giảm REPL hiệu quả xuống REL:
node -e "var vm = require('vm'); require('repl').start({ignoreUndefined: true, eval: function(cmd, ctx, fn, cb) {var err = null; try {vm.runInContext(cmd, ctx, fn);} catch (e) {err = e;} cb(err);}})"
Nút sử dụng kiểm tra để định dạng giá trị trả lại. Thay thế kiểm tra bằng một hàm chỉ trả về một chuỗi rỗng và nó sẽ không hiển thị bất cứ thứ gì.
require('util').inspect = function() { return '' };
Tôi không nghĩ có công tắc cho việc này. – xiaoyi
Làm thế nào về gói nó trong một chức năng vô danh? Bạn đang thực thi câu lệnh gì? –
Vì thẻ này được gắn thẻ 'console', hãy thử' $ node yourScript.js>/dev/null 2> & 1' để ẩn tất cả đầu ra –