2013-09-24 34 views
15

Làm cách nào để trả lại lời hứa nhưng gọi khối lỗi của nó ngay lập tức? Đây là một cách gnarly để làm điều đó:Làm cách nào để trả lại lời hứa không thành công?

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

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

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

tại sao bạn muốn làm điều đó? xin vui lòng gửi tất cả khối mã –

+0

vì tôi muốn gọi khối catch trong chức năng người gọi. – yayitswei

+1

Điều này có vẻ ổn. Vấn đề bạn đang gặp phải là gì. Làm thế nào bạn bắt được thất bại? – Chandermani

Trả lời

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

Ref 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){}) 
Các vấn đề liên quan