Articles of bluebird

Ainda existem razões para usar bibliotecas promises como Q ou BlueBird agora que temos promises ES6?

Depois que o Node.js adicionou suporte nativo para promises, ainda existem razões para usar bibliotecas como Q ou BlueBird? Por exemplo, se você está iniciando um novo projeto e vamos supor neste projeto que você não tem nenhuma dependência que use essas bibliotecas, podemos dizer que realmente não há mais motivos para usar essas bibliotecas?

Fluxo if-else na promise (bluebird)

Esta é uma versão curta do meu código. var Promise = require(‘bluebird’); var fs = Promise.promisifyAll(require(“fs”)); if (conditionA) { fs.writeFileAsync(file, jsonData).then(function() { return functionA(); }); } else { functionA(); } Ambas as condições chamam a functionA . Existe maneira de evitar outra condição? Eu posso fazer fs.writeFileSync mas estou procurando uma solução sem bloqueio.

Manipulando várias capturas na cadeia de promises

Eu ainda sou bastante novo para promises e estou usando o bluebird atualmente, no entanto, tenho um cenário em que não tenho certeza de como lidar melhor com ele. Então, por exemplo, eu tenho uma cadeia de promises dentro de um aplicativo expresso assim: repository.Query(getAccountByIdQuery) .catch(function(error){ res.status(404).send({ error: “No account found with this Id” }); […]

Manipulação de exceção assíncrona com promises bluebird

Qual é a melhor maneira de lidar com esse cenário? Eu estou em um ambiente controlado e não quero falhar. var Promise = require(‘bluebird’); function getPromise(){ return new Promise(function(done, reject){ setTimeout(function(){ throw new Error(“AJAJAJA”); }, 500); }); } var p = getPromise(); p.then(function(){ console.log(“Yay”); }).error(function(e){ console.log(“Rejected”,e); }).catch(Error, function(e){ console.log(“Error”,e); }).catch(function(e){ console.log(“Unknown”, e); }); Ao jogar […]

Qual é o padrão de disposição do promise?

Eu li sobre o padrão de disposição de promise em vários lugares, mas não consigo descobrir o que é. Foi sugerido para mim usá-lo em código que se parece com: function getDb(){ return myDbDriver.getConnection(); } var users = getDb().then(function(conn){ return conn.query(“SELECT name FROM users”).finally(function(users){ conn.release(); }); }); Qual é o padrão de disposição do compromisso […]

Maneira correta de escrever loops para promise.

Como construir corretamente um loop para garantir que a seguinte chamada de promise e o logger.log encadeado (res) sejam executados de forma síncrona por meio da iteração? (pássaro azul) db.getUser(email).then(function(res) { logger.log(res); }); // this is a promise Eu tentei o seguinte caminho (método de http://blog.victorquinn.com/javascript-promise-while-loop ) var Promise = require(‘bluebird’); var promiseWhile = function(condition, […]

Como encadear e compartilhar resultados anteriores com Promises

Estou usando a biblioteca bluebird e preciso fazer uma série de solicitações HTTP e preciso de alguns dos dados de resposta para a próxima solicitação HTTP. Eu construí uma function que lida com meus pedidos chamados callhttp() . Isso leva um URL e o corpo de um POST. Eu estou chamando assim: var payload = […]

Quando então (sucesso, fracasso) é considerado um antipadrão para promises?

Eu tive um olhar para o FAQ promise bluebird , em que menciona que. .then(success, fail) é um antipadrão . Eu não entendo bem sua explicação quanto à tentativa e captura. O que há de errado com isso o seguinte? some_promise_call() .then(function(res) { logger.log(res) }, function(err) { logger.log(err) }) Parece que o exemplo está sugerindo […]

Não são promises apenas callbacks?

Eu venho desenvolvendo JavaScript há alguns anos e não entendo o alarido sobre promises. Parece que tudo que faço é mudar: api(function(result){ api2(function(result2){ api3(function(result3){ // do work }); }); }); Que eu poderia usar uma biblioteca como async para qualquer maneira, com algo como: api().then(function(result){ api2().then(function(result2){ api3().then(function(result3){ // do work }); }); }); Qual é […]

Como faço para converter uma API de retorno de chamada existente em promises?

Quero trabalhar com promises, mas tenho uma API de retorno de chamada em um formato como: 1. Carregamento DOM ou outro evento único: window.onload; // set to callback … window.onload = function(){ }; 2. retorno de chamada simples: function request(onChangeHandler){ … } request(function(){ // change happened … }); 3. Retorno de chamada de estilo de […]