想看看这是否可能,如果可能的话如何实现。在 Angular 的 .catch
block 上,我想要回调handleError并传递一个id。但无论函数被调用,我都知道它是因为 Promise 是如何形成的。但我希望有一种方法可以在不事先调用函数的情况下仍然传递参数。
//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);
最佳答案
.catch
的第一个参数始终是抛出的异常。您可能可以通过闭包方法实现您正在寻找的目标。像这样的东西:
function handleError(id) {
return function(err) {
// access to both err and id
}
或者,您可以在.catch
中抛出
id,然后下一个catch
会拾取它
.catch(err=> { throw id })
.catch(id=> ... )
关于javascript - 如何在 Angular 捕获 block 中传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46833686/