Skip to content

Instantly share code, notes, and snippets.

@Xananax
Created February 3, 2017 03:45
Show Gist options
  • Save Xananax/e90c4d5ae8c5d7b2844f0d06d1dc8902 to your computer and use it in GitHub Desktop.
Save Xananax/e90c4d5ae8c5d7b2844f0d06d1dc8902 to your computer and use it in GitHub Desktop.
function getAnAnswerMaybeSomeDay(url,cb){
var willWork = Math.random() > .1
var waitFor = Math.random() * 500
setTimeout(function(){
if(willWork){
cb(null,"réponse")
}else{
cb(new Error("pas de reponse"))
}
},waitFor)
}
function doSomethingWithData(data,cb){
var willWork = Math.random() > .1
var waitFor = Math.random() * 500
setTimeout(function(){
if(willWork){
cb(null,data+" > traitement 1")
}else{
cb(new Error('erreur durant traitement 1'))
}
},waitFor)
}
function doSomethingElseWithData(data){
return data+" > traitement 2"
}
function giveMeAnAnswer(cb){
getAnAnswerMaybeSomeDay('www.facebook.com',function(err,res){
if(err){return cb(err);}
doSomethingWithData(res,function(err,processed){
if(err){return cb(err);}
try{
var processedMore = doSomethingElseWithData(processed)
cb(null,processedMore)
}catch(e){
return cb(e)
}
})
})
}
giveMeAnAnswer(function(err,final){
if(err){
console.error(err.message)
}else{
console.log(final)
}
})
function getAnAnswerMaybeSomeDay(url){
return new Promise(function(resolve,reject){
var willWork = Math.random() > .1
var waitFor = Math.random() * 500
setTimeout(function(){
if(willWork){
resolve("réponse")
}else{
reject(new Error("pas de reponse"))
}
},waitFor)
})
}
function doSomethingWithData(data){
return new Promise(function(resolve,reject){
var willWork = Math.random() > .1
var waitFor = Math.random() * 500
setTimeout(function(){
if(willWork){
resolve(data+" > traitement 1")
}else{
reject(new Error('erreur durant traitement 1'))
}
},waitFor)
})
}
function doSomethingElseWithData(data){
return data+" > traitement 2"
}
function giveMeAnAnswer(){
return getAnAnswerMaybeSomeDay('www.facebook.com')
.then(doSomethingWithData)
.then(doSomethingElseWithData)
.catch(function(err){throw err;})
}
giveMeAnAnswer()
.then(function(answer){
console.log(answer)
})
.catch(function(err){
console.error(err.message)
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment