Nó; Q Atraso da promessa
Aqui estão algumas perguntas simples baseadas no comportamento que observei no exemplo a seguir em execução no nó:
Q('THING 1').then(console.log.bind(console));
console.log('THING 2');
A saída para isso é:
> "THING 2"
> "THING 1"
Questões:1) Por que éQ
implementado para aguardar antes de executar o retorno de chamada em um valor imediatamente conhecido? Por que nãoQ
inteligente o suficiente para permitir que a primeira linha emita de forma síncrona sua saída antes da execução da segunda linha?
2) Qual é o intervalo de tempo entre"THING 2"
e"THING 1"
sendo produzido? É um único tick de processo?
3) Poderia haver preocupações de desempenho com valores profundamente envolvidos em promessas? Por exemplo, fazQ(Q(Q("THING 1")))
aguarde de forma assíncrona 3 vezes o tempo para concluir, mesmo que possa ser resolvido de forma eficiente e síncrona?