Articles of q

Enquanto loop com promises

Qual seria a maneira idiomática de fazer algo como um loop while com promises? Assim: faça alguma coisa se a condição continuar, faça-a novamente e faça outra coisa. dosomething.then(possilblydomoresomethings).then(finish) Eu fiz dessa maneira, eu estava me perguntando se havia alguma maneira melhor / mais idiomática? var q = require(‘q’); var index = 1; var useless […]

Angularjs $ q.all

Eu implementei o $ q.all em angularjs, mas não consigo fazer o código funcionar. Aqui está o meu código: UploadService.uploadQuestion = function(questions){ var promises = []; for(var i = 0 ; i < questions.length ; i++){ var deffered = $q.defer(); var question = questions[i]; $http({ url : 'upload/question', method: 'POST', data : question }). success(function(data){ […]

Como sequencialmente executar promises com Q em JavaScript?

Eu estou tendo dificuldade em executar promises sequencialmente. var getDelayedString = function(string) { var deferred = Q.defer(); setTimeout(function() { document.write(string+” “); deferred.resolve(); }, 500); return deferred.promise; }; var onceUponATime = function() { var strings = [“Once”, “upon”, “a”, “time”]; var promiseFuncs = []; strings.forEach(function(str) { promiseFuncs.push(getDelayedString(str)); }); //return promiseFuncs.reduce(Q.when, Q()); return promiseFuncs.reduce(function (soFar, f) { […]

Problema no retorno de dados recuperados de consultas de database chamadas no loop

Eu estou fazendo várias consultas mongoDB em loop. e quero enviar todos os resultados como uma matriz de dados.Mas quando eu simples uso o retorno para enviar os dados simplesmente retorne indefinido e não espere pelos resultados de todas as requisições DB. Eu também tentei usar q.moulde mas mesmo problema. Código: var getPrayerInCat = function(data){ […]

Problemas inerentes ao jQuery $ .Deferred (jQuery 1.x / 2.x)

@Domenic tem um artigo muito completo sobre as falhas dos objects adiados jQuery: Você está perdendo o Ponto das Promessas . Nele, Domenic destaca algumas falhas das promises do jQuery em comparação com outras, incluindo Q , quando prom.j.j, RSVP.js e ES6 prometem. Eu me afasto do artigo de Domenic, sentindo que as promises do […]

Resolve promete um após o outro (ou seja, em seqüência)?

Considere o seguinte código que lê uma matriz de arquivos de maneira serial / seqüencial. readFiles retorna uma promise, que é resolvida apenas quando todos os arquivos tiverem sido lidos em sequência. var readFile = function(file) { … // Returns a promise. }; var readFiles = function(files) { return new Promise((resolve, reject) => var readSequential […]

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 é […]

Qual é o antipadrão de construção de promise explícita e como evitá-lo?

Eu estava escrevendo código que faz algo parecido com: function getStuffDone(param) { | function getStuffDone(param) { var d = Q.defer(); /* or $q.defer */ | return new Promise(function(resolve, reject) { // or = new $.Deferred() etc. | // using a promise constructor myPromiseFn(param+1) | myPromiseFn(param+1) .then(function(val) { /* or .done */ | .then(function(val) { d.resolve(val); […]