/lib-ysAsync

Bliblioteca javascript usada para suprir as necessidades de 'async await' em versões mais antigas do node.

Primary LanguageJavaScriptMIT LicenseMIT

lib-ysAsync

Bliblioteca javascript usada para suprir as necessidades de async await em versões mais antigas do node.

Sobre

lib-ysAsync é uma lib criada para suprir a falta do 'await' em funções antigas do node, como a v5.0.0
Com lib-ysAsync podemos esperar por uma resposta, e a utilizar depois de a receber, como uma promise. Temos a posibilidade de dar continuidade no cadeia de then de maneira não sequencial. Um then não precisa necessariamente chamar outro. Ao distanciar um objeto da lib-ysAsync e chamar a propriedade await para receber a nossa resposta, podemos decidir se queremos fazer um tratamento sequencial adicionando novos then, ou depois, chamando o mesmo objeto distânciado com a funcionalidade 'then'.

Exemplo de uso:

var path = __dirname;
const fs = require('fs');
function lerPasta(req, res) {
  var matriz = []
  fs.readdir(path,function(err,file){
    file.forEach(arquivo => matriz.push(arquivo) )
    res.res = matriz
  })
}

const ys = new ysAsync()

ys.await(false, lerPasta).then(resposta => {
  console.log('Essa é a resposta do then 1: ' + resposta)
  return 'retorno  do then 1'
}).then(resposta => {
  console.log('Essa é a resposta do then 2: ' + resposta)
  return 'retorno  do then 2'
})


var variavelForaDoThen = null

ys.then(esse => {
  variavelForaDoThen = esse
  console.log('Essa é a resposta do then 3: ' +  esse)
  return 'retorno  do then 3'
})

ys.then(esse => {
  console.log('Essa é a resposta do then 4: variavel Fora Do Then com valor do then anterior -> ' +  variavelForaDoThen)
})

console

Essa é a resposta do then 1: main.js
Essa é a resposta do then 2: retorno  do then 1
Essa é a resposta do then 3: retorno  do then 2
Essa é a resposta do then 4: variavel Fora Do Then com valor do then anterior -> retorno  do then 2

Detalhes

  • Não usa dependência externa.
  • Funciona em versões antigas do node(foi feita para isso) mas também serve tranquilamente para as novas.
  • Funciona em sistemas de commandjs e módulos.
  • Fácil alteração e implementação.
  • Licensa: MIT

Essa é uma funcionalidade rústica ainda. Sinta-se a vontade para contribuir.