Articles of bluebird

Como posso promisify o driver Javascript nativo do MongoDB usando o bluebird?

Eu gostaria de usar o driver JS nativo do MongoDB com promises bluebird . Como posso usar Promise.promisifyAll() nesta biblioteca?

Resolver uma série de promises de uma promise de pai

Esta é minha primeira chance de promises aninhadas. Eu estou usando a biblioteca bluebird , mas acho que a idéia é a mesma para todas as bibliotecas prometidas. Em um nível alto, é isso que estou tentando fazer: myService.getSomeData(url) .then((data) => { myOtherService.getMoreData(data.uniqueId) .then((thisDataIsAnArray) => { //loop over the data above and do something }); […]

Limitar a simultaneidade da promise que está sendo executada

Eu estou procurando um wrapper de function de promise que pode limitar / throttle quando uma determinada promise está sendo executada para que apenas um número definido dessa promise esteja sendo executado em um determinado momento. No caso abaixo de delayPromise nunca deve ser executado simultaneamente, todos devem ser executados um de cada vez em […]

Enquanto loop usando bluebird promete

Eu estou tentando implementar um loop while usando promises. O método descrito aqui parece funcionar. http://blog.victorquinn.com/javascript-promise-while-loop usa uma function como esta var Promise = require(‘bluebird’); var promiseWhile = function(condition, action) { var resolver = Promise.defer(); var loop = function() { if (!condition()) return resolver.resolve(); return Promise.cast(action()) .then(loop) .catch(resolver.reject); }; process.nextTick(loop); return resolver.promise; }; Isso parece […]

Como sei se um object é uma promise?

Seja uma Promessa ES6 ou uma Promessa BlueBird, Promessa Q, etc. Como faço para testar para ver se um determinado object é uma promise?

Desaceleração devido a espera não paralela de promises em geradores asynchronouss

Estou escrevendo código usando geradores e Bluebird e tenho o seguinte: var async = Promise.coroutine; function Client(request){ this.request = request; } Client.prototype.fetchCommentData = async(function* (user){ var country = yield countryService.countryFor(user.ip); var data = yield api.getCommentDataFor(user.id); var notBanned = yield authServer.authenticate(user.id); if (!notBanned) throw new AuthenticationError(user.id); return { country: country, comments: data, notBanned: true }; }); […]

Como eu uso o Bluebird com Angular?

Eu tentei usar Angular com promises Bluebird: HTML: {{name}} {{also}} JS: // javascript var app = angular.module(‘HelloApp’, []); app.controller(“HomeController”, function ($scope) { var p = Promise.delay(1000).then(function () { $scope.name = “Bluebird!”; console.log(“Here!”, $scope.name); }).then(function () { $scope.also = “Promises”; }); $scope.name = “$q”; $scope.also = “promises”; }); window.app = app; [ Violino ] No entanto, […]

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” }); […]