如何在控制台中使用console.log(或其他命令)命令在同一行中添加一些文字?

时间:2017-12-15 07:58:16

标签: javascript

如何使用同一行中的console.log(或其他命令)命令在控制台中打印一些文字?

例如:

print 1;
print 2;
print 3;

控制台输出:123

1 个答案:

答案 0 :(得分:1)

假设我理解正确,你想要一个等同于C#的Console.Write的JavaScript,它将(a)字符追加到最后一行。

那是不可能的。

当控制台记录某些内容时,您将无法再访问它。你不能追加"对于记录的行,您无法更改它。

那就是说,你可以编写一个包装来模仿这种行为:



let logTimeout;        // Keep track of the pending timeout
let logArguments = []; // Keep track of the passed loggable arguments


function log(...args) {
  if (logTimeout) {
    logTimeout = clearTimeout(logTimeout);  // Reset the timeout if it's pending.
  }

  logArguments = logArguments.concat(args); // Add the new arguments.
  
  logTimeout = setTimeout(() => {           // Log all arguments after a short delay.
    console.log(...logArguments);
    logArguments.length = 0;
  });
}

log(1);
log(2);
log(3);
log("foo");
log("bar");
log({crazy: "stuff"});

setTimeout(() => {
  log(4);
  log(5);
  log(6);
  log("baz");
  log("woo");
  log([{crazier: "stuff"}]);
}, 500);




请注意,此记录器是异步的。这意味着调用log的代码将在实际记录某些内容之前运行完毕。