2013-09-24 12 views
15

Jak zwrócę obietnicę, ale natychmiast powoła się blok jej? Oto gnarly sposób to zrobić:Jak zwrócić nieudaną obietnicę?

if (fail) { 
    var q = $q.deferred(); 

    $timeout(function() { 
     q.reject("") 
    }, 1); 

    return q.promise; 
} else { 
    return $http.get("/").then(function(data) {}); 
} 
+0

dlaczego chcesz to zrobić? proszę napisać cały blok kodu –

+0

, ponieważ chcę wywołać blok catch w funkcji wywołującej. – yayitswei

+1

Wydaje się to w porządku. Na czym polega problem. Jak złapiesz porażkę? – Chandermani

Odpowiedz

17
if(fail) { 
    return $q.reject(yourReasonObject); 
} 
else ... 

Nr here :)

0
function setLike(productId){ 
    return new Promise(function(succeed, fail) { 
     if(!productId) throw new Error(); 
     jQuery.ajax({ 
      success: function (res) { 
       succeed(res) 
      } 
     }) 
    }) 
} 


    setLike(id).then(function(){ 

     //render 

    }).catch(function(e){}) 
Powiązane problemy