No clima atual do JavaScript de novas sintaxes, recursos e uso de muitas bibliotecas externas, parece mais difícil do que nunca ter certeza do que as funções estão recebendo ou mesmo do que os dados representam. É claro que criamos o Flow e o TypeScript para ajudar, mas não podemos contar com eles sempre disponíveis. É por isso que gosto de fazer minha própria detecção com JavaScript, especialmente quando se trata de tipos de função.

Para detectar se uma função é uma função geradora ou geradora assíncrona, o senhor pode usar o seguinte código:

// Sample generator function
function* sampleGenerator() {}
sampleGenerator.constructor.name
// "GeneratorFunction"

async function* sampleGenerator() {}
sampleGenerator.constructor.name
// "AsyncGeneratorFunction"

Coincidentemente, o senhor também pode detectar uma função assíncrona regular com:

async function asyncThing() {}
asyncThing.constructor.name
// "AsyncFunction"

É sempre importante saber se o código que o senhor está usando é sincronizado, assíncrono ou um gerador, mas se estiver usando bibliotecas externas ou quiser escrever testes abrangentes, esses tipos de detecção podem ser necessários.

  • WebKit Marquee CSS:  Bringin’ Sexy Back

    Todos nós brincamos sobre os dias de Antigamente na Web. Os senhores se lembram deles: GIFs animados estúpidos (chamas e imagens de “em breve”, principalmente), contadores idiotas, livros de visitas, applets etc. Outro “recurso” do qual pensávamos ter nos livrado era o marquee. O marquee era um recurso rudimentar, semelhante ao javascript…

  • MooTools OpenLinks Class - Atualizado