AngularFire 的$changePassword
方法返回一个承诺。在使用 Futures/promises 时,该标准与 node.js-esque 回调不同,错误不会在成功回调中返回,而是传递给失败回调(传递给 then 的第二个函数)。
您还可以利用特殊final
和catch
方法作为then(success, failure)
. 这允许以复杂的方式链接顺序事件:
stepOne()
.then(stepTwo)
.then(stepThree)
.then(stepFour)
.catch(function(error) {
console.error(error);
});
请注意我们如何只在一个地方处理错误。每个“步骤”只有在上一步成功时才会被触发,所以我们不需要不断地包含 if/then/else 逻辑来处理每个点的失败。
因此,要翻译,API 的使用方式如下:
$changePassword(...).then(/* success */, /* failure */);
或者在你的情况下:
changePassword: function(email, oldPassword, newPassword){
return auth.$changePassword(email, oldPassword, newPassword).catch(function(error) {
console.log(error); });
// or...
// return auth.$changePassword(...).then(null, function(error) { ... });
});