Size: a a a

2021 February 10

К

Константин in javascript_ru
странно что не по дате.
Нафиг он такие нужны =)
источник

DM

Denys Mikhalenko in javascript_ru
ну может у них изначально другие планы были на теги
источник

DM

Denys Mikhalenko in javascript_ru
а в итоге все используют только для версионирования
источник

AA

A Agnaev in javascript_ru
Denys Mikhalenko
Как сделать так, чтобы сначала метод был вызван, а потом залогировалось?
function decorator(fn, ...args) {
   setTimeout(console.log, 0, 'Hello')
   return fn.apply(this, args)
}
источник

P

PWG in javascript_ru
A Agnaev
function decorator(fn, ...args) {
   setTimeout(console.log, 0, 'Hello')
   return fn.apply(this, args)
}
Иди на ютуб смотреть Арчибальда про event loop
источник

DM

Denys Mikhalenko in javascript_ru
A Agnaev
function decorator(fn, ...args) {
   setTimeout(console.log, 0, 'Hello')
   return fn.apply(this, args)
}
В принципе работать будет, но есть проблемка с тем, что это асинхронно, значит все то, что идет после вызова этой функции залогируется раньше, чем вот этот лог, что по сути нарушит последовательность
источник

DM

Denys Mikhalenko in javascript_ru
источник

DM

Denys Mikhalenko in javascript_ru
вот что выводит вот этот код:
источник

DM

Denys Mikhalenko in javascript_ru
источник

DM

Denys Mikhalenko in javascript_ru
не совсем то, что хотелось
источник

AA

A Agnaev in javascript_ru
Окей, а если через queueMicotask попробовать?
источник

DM

Denys Mikhalenko in javascript_ru
а вот правильное решение
источник

DM

Denys Mikhalenko in javascript_ru
источник

DM

Denys Mikhalenko in javascript_ru
выводит красиво
источник

DM

Denys Mikhalenko in javascript_ru
источник

DM

Denys Mikhalenko in javascript_ru
A Agnaev
Окей, а если через queueMicotask попробовать?
попробуй
источник

DM

Denys Mikhalenko in javascript_ru
твоя цель - добиться того, что на последнем скрине
источник

AA

A Agnaev in javascript_ru
Denys Mikhalenko
твоя цель - добиться того, что на последнем скрине
function decorator(fn) {
   console.log('before calling fn')
   queueMicrotask(console.log.bind(null, 'After calling fn'))
   return fn()
}
источник

К

Константин in javascript_ru
A Agnaev
function decorator(fn) {
   console.log('before calling fn')
   queueMicrotask(console.log.bind(null, 'After calling fn'))
   return fn()
}
и оно будет вызвано непонятно когда непонятно на каком тике эвентлупа.
источник

AA

A Agnaev in javascript_ru
Константин
и оно будет вызвано непонятно когда непонятно на каком тике эвентлупа.
решения получше я не знаю. С удовольствием посмотрю на ваше
источник