Если несколько процессов одновременно записывают в stdout, нет ничего, что могло бы остановить чередование потоков. Это то, что я имею в виду под столкновением. В соответствии с комментариями в node source должно быть возможно избежать столкновений в process.stdout
. Я пробовал это, и это помогает, но у меня все еще возникают столкновения. Без флага writing
я получаю столкновений каждый раз, а флаг падает до 40%. Все еще очень важно.столкновений stdout на узле
page.on('onConsoleMessage', function log(message) {
var writing = process.stdout._writableState.writing
|| process.stdout._writableState.bufferProcessing
|| process.stdout.bufferSize ;
if(writing)
process.nextTick(message => log(message));
else
process.stdout.write('-> ' + message + '\n')
});
Что является лучшим способом, чтобы избежать столкновений на process.stdout
?
Приведенная выше процедура сопоставлена с Winston за stdout
.
узел v5.12.0 для Windows 10
Эта проблема возникает только при использовании консоли Run в WebStorm, выход не перепутать при работе узла в PowerShell или из ЦМД. Я поднял ticket для этого на реактивных мозгах.
Можете ли вы определить, что такое столкновение? – robertklep
@robertklep, вы видели [The Fly] (https://en.wikipedia.org/wiki/The_Fly_ (1958_film))? –
Ха-ха, я понимаю: D Итак, вы получаете чередование символов между различными строками журнала? Или чередование строк, где вы регистрируете несколько строк с одним регистратором, и они чередуются с другим регистратором? – robertklep