2017-10-19 24 views
1

想看看這是否可能,如果是的話如何。在Angular的.catch區塊中,我希望有我的handleError回調並傳遞一個id。但無論函數被調用,我都知道它是因爲承諾是如何形成的。但我希望有一種方法可以在不調用函數的情況下繼續傳遞參數。如何在角度捕捉塊中傳遞參數

//controller 
function handleError(id) { 
    showErrorMessage(id); 
} 

callFactory 
    .then(update) 
    .catch(handleError) 
    .finally(clearLoader); 

// would like to use something like this. 

callFactory 
    .then(update) 
    .catch(handleError(2)) //this gets called regardless 
    .finally(clearLoader); 
+0

使用拿起一個函數工廠,返回handleError'的'定製版'catch'可以打電話。 – zero298

+0

是的,這就是我目前擁有的。只是好奇,如果上述是可能的。 – alphapilgrim

回答

2

.catch的第一個參數總是將是拋出的異常。你可能可以用閉包方法實現你正在尋找的東西。喜歡的東西:

function handleError(id) { 
    return function(err) { 
    // access to both err and id 
} 

Altertnatively,你可以throw中的id .catch,那麼這將是在下一catch

.catch(err=> { throw id }) 
.catch(id=> ...) 
+0

關閉FTW!謝謝,奧斯汀。 – alphapilgrim