有时,我在AngularJs中的promise then()内部看到两个以上的函数用逗号分隔.这里有人可以帮助解释结构的含义吗?
例如
then(function(response){..}, function(response){..}, function(response){..}, function(response){..});
我知道,如果then()内部有两个函数.如果第一个函数履行了承诺,那么它将运行,否则,如果发生任何错误,第二个函数将运行.这种结构也不像链式承诺…
非常感谢您的帮助:-)
解决方法:
好:
>第一个函数是实现处理程序,它将在promise解析为一个值(通常)时执行.
>第二个功能是拒绝处理程序,它将在承诺通过拒绝(或在处理程序中引发异常)而解决错误时执行.
>第三个功能是不断进步的功能,这是一项非标准且已弃用的功能,永远不会成为ECMAScript承诺的一部分-最好完全避免使用它,因为它的结构不佳. Angular的新$q API也不支持它.
>传入的第三个函数之后的任何内容都将被处理程序忽略,并且将无效.
这是所有三个被调用的示例:
var good = $q.when(3);
good.then(x => console.log("Successful"));
var bad = $q.reject(Error("Bad")); // always reject with errors
bad.then(null, x => console.log("Failed"));
var d = $q.defer(); // don't do this like... ever
d.promise.then(null, null, x => console.log("Progressed"));
d.notify("event notification"); // never use this in real code ;)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。