Novo Meteor.js 2.10 e o recurso Async Tracker

Jan 17 2023
Um novo Meteor.js chegou com ótimas atualizações sobre React Skeletons, definições de tipo MongoDB e a possibilidade de executar código reativo assíncrono em um Tracker.

Um novo Meteor.js chegou com ótimas atualizações sobre React Skeletons, definições de tipo MongoDB e a possibilidade de executar código reativo assíncrono em um arquivo Tracker.autorun.

Quanto à nossa atualização usual em nosso caminho para um MeteorJS sem fibras, para esta versão, o único novo recurso que temos agora é a possibilidade de executar código assíncrono em um arquivo Tracker.autorun.

Rastreador assíncrono

Antes de discutir o que mudou, é necessário contextualizar como fazíamos no passado. Isso veio de nossos documentos antes de 2.10:

Tracker.autorunpode aceitar uma asyncfunção de retorno de chamada. No entanto, a função de retorno de chamada assíncrona dependerá apenas de funções reativas chamadas antes de qualquer função chamada que retorne uma promessa.

Isso se traduziria em:

O exemplo abaixo não depende de alterações reativas na Meteor.userscoleção. Como não depende de nada reativo, ele será executado apenas uma vez:

Tracker.autorun(async function example1() {
    let asyncData = await  asyncDataFunction();
    let users = Meteor.users.find({}).fetch();
  });

Tracker.autorun(async function example2()  {
    let users = Meteor.users.find({}).fetch();
    let asyncData = await  asyncDataFunction();
  });

Tracker.autorun(async function example1(computation) {
    let asyncData = await Tracker.withComputation(computation, () => asyncDataFunction());
    let users = Meteor.users.find({}).fetch();
  });

Tracker.autorun(async function example2(computation) {
    let asyncData = await Tracker.withComputation(computation, () => asyncDataFunction());
    let users = await Tracker.withComputation(computation, () => Meteor.users.find({}).fetchAsync()); 
  });

Atualização de tipos do MongoDB

Desde a versão 2.8.1 , temos suporte direto a TypeScript no núcleo do Meteor.js. Nesta nova versão, estamos trazendo as definições de tipo do Core MongoDB Driver e as expondo ao invés de usar uma versão caseira dessas tipagens.

Você pode conferir melhor neste PR feito pela @perbergland .

Outras atualizações

Menções notáveis ​​são:

  • Atualizando os esqueletos de reação para a versão 18
  • Atualizando o TypeScript para v4.7.4
  • Adicionando ganchos assíncronos e método de ganchos claros

Agradecimentos especiais para

  • @StorytellerCZ
  • @perbergland
  • @ebroder
  • @harryadel
  • @radekmie
  • @Grubba27
  • @afrokick