Узел; Q Задержка обещания
Вот несколько простых вопросов, основанных на поведении, которое я заметил в следующем примере:
Q('THING 1').then(console.log.bind(console));
console.log('THING 2');
Выход для этого:
> "THING 2"
> "THING 1"
Вопросы:1) ПочемуQ
реализован для ожидания перед запуском обратного вызова для значения, которое сразу известно? Почему нетQ
достаточно умен, чтобы позволить первой строке синхронно выдать свой вывод до запуска 2-й строки?
2) Какой промежуток времени между"THING 2"
а также"THING 1"
выводится? Это единый процесс?
3) Могут ли быть проблемы производительности с ценностями, которые глубоко обернуты в обещаниях? Например, делаетQ(Q(Q("THING 1")))
асинхронное ожидание в 3 раза дольше, даже если оно может быть эффективно разрешено синхронно?