Я новичок в узел JS, и есть метод в моем коде, который сохраняет информацию следующим образом:Регистрация методов для запуска в то же время - узел JS
var saveInformation = function(query, update, options) {
asyncTasks.push(function(done) {
what.findOneAndUpdate(query, update, options, done)
})
}
saveInformation(query, update, options)
я называю метод saveInformation
на несколько случаях и необходимо записывать файлы журнала каждый раз при вызове этого метода. Каков самый простой способ сделать это?
Я попытался просто добавить свой журнал (я использую модуль Winston) сразу после, как это:
saveInformation(query, update, options)
logger.info('Hello')
Однако это иногда спасает, а иногда нет (т.е. он будет регистрировать только один раз, однако этот метод несколько раз выполняйте мою программу).
Так что мне интересно, есть ли способ добавить другой метод в строку saveInformation, чтобы гарантировать, что они оба запускаются одновременно, поэтому, когда saveInformation
сохраняется в dbs, я также создаю журнал?
Я вижу, что вы там делаете, однако в моем случае каждый logger.info имеет другой контент, поэтому, я думаю, у меня не было разных переменных для каждого регистратора. Поскольку их будет много. Любое другое решение? – deeveeABC
@deeveeABC Если вы хотите, чтобы оператор ведения журнала печатался после операции findAndUpdate, он должен быть в обратном вызове. Поэтому вам придется подумать о способе отправки сообщения, которое должно быть записано в функцию обратного вызова. Вы также можете сделать оператор регистрации перед вызовом, указав, что запускается операция сохранения X, а другая в обратном вызове говорит, что операция Y была успешно завершена или с ошибкой. Он может содержать данные из сохраняемой модели, чтобы можно было отличать сообщения, например. –