Skip to content

Instantly share code, notes, and snippets.

@beeva-manueldepaz
Last active August 29, 2015 14:07
Show Gist options
  • Save beeva-manueldepaz/c554b65240e54931d763 to your computer and use it in GitHub Desktop.
Save beeva-manueldepaz/c554b65240e54931d763 to your computer and use it in GitHub Desktop.
Probando las promesas en node con Q (versión 2)
"use strict"
// Dependencias
var Q = require('q'); // Necesario instalar con $npm install Q
var http = require('http'); // Parte del core de node, no necesario instalar.
// Código de la función que devuelve una promesa
var promesa = function () {
console.log('Soy promesa: empiezo');
var d = Q.defer();
http.get("http://www.google.com/index.html",
function(res) {
d.resolve(res);
console.log("Got response: " + res.statusCode);
})
.on('error',
function(e) {
console.log("Got error: " + e.message);
d.reject(err);
});
console.log('Soy promesa: acabo');
return d.promise;
};
// Función para separar el tratamiento correcto
var onSuccess = function (obj) {
console.log('soy onSuccess');
console.log(obj.headers.location);
};
// Función para separar el tratamiento erróneo
var errorHandler = function (error) {
console.log('errorHandler');
console.log(errors);
};
// Lanzamos la promesa
console.log('Antes de lanzar la promesa:');
var reply = promesa();
reply
.then(onSuccess)
.fail(errorHandler)
.done(function() { console.log('fin')});
console.log('Tras de lanzar la promesa:');
console.log('EOF');
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment