Skip to content

Instantly share code, notes, and snippets.

@erhangundogan
Last active December 17, 2015 00:38
Show Gist options
  • Save erhangundogan/5522331 to your computer and use it in GitHub Desktop.
Save erhangundogan/5522331 to your computer and use it in GitHub Desktop.
promise me request this website
// http://documentup.com/kriskowal/q/
(function() {
"use strict"
var Q = require("q"),
Request = require("request");
var delayOne = function() {
return Q.delay(100).then(function() {
return ["http"];
});
};
var delayTwo = function(preValue) {
return Q.delay(0).then(function() {
preValue.push("://www.");
return preValue;
});
};
var delayThree = function(preValue) {
return Q.timeout(300).then(function() {
preValue.push("hurriyet.com.tr");
return preValue;
});
};
// make request promised
var getUrl = function(uri) {
var deferred = Q.defer();
Request.get(uri.join(""), function(err, res, body) {
if (err) {
deferred.reject(new Error(err));
} else {
deferred.resolve({res:res, body:body});
}
});
return deferred.promise;
};
var searchPage = function(regex) {
return function(content) {
var deferred = Q.defer();
if (content && regex) {
var result = regex.test(content.body||"");
deferred.resolve(result);
} else {
deferred.reject(new Error("içerik yok veya regular expression girilmedi!"));
}
return deferred.promise;
}
};
Q .fcall(delayOne)
.then(delayTwo)
.then(delayThree)
.then(getUrl)
.then(searchPage(/hurriyet/))
.done(function(result) {
console.log(result);
}, function(error) {
console.log("[ERROR] => ", error||error.stack);
});
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment