Existe uma maneira de retornar cedo na promessa adiada?
Então, eu tenho uma promessa que contém várias verificações como esta
function test(){
var deferred = q.defer()
var passed = false
if(!passed){
deferred.reject("Don't proceed")
//return
} else {
if(!passed){
deferred.reject("Don't proceed")
} else {
if(!passed){
deferred.reject("Don't proceed")
} else {
setTimeout(function(){
console.log("Hello");
deferred.resolve()
}, 100);
}
}
}
return deferred.promise
}
Isso parece ruim porque há uma pirâmide na parte inferior. Gostaria de saber se existe algo como retorno em 'q' que pode fazer o código parecer melhor? Por exemplo, assim:
function test(){
var deferred = q.defer()
var passed = false
if(!passed){
deferred.reject("Don't proceed")
return
}
if(!passed){
deferred.reject("Don't proceed")
return
}
if(!passed){
deferred.reject("Don't proceed")
return
}
setTimeout(function(){
console.log("Hello");
deferred.resolve()
}, 100);
return deferred.promise
}
Definitivamente, isso não funciona porque ele retornou antes que a promessa fosse retornada, mas estou me perguntando se existe algo como um retorno.