什么是Promise
简单来讲,@H_502_7@promise是ES6一个@H_502_7@API、构造函数,也是一种规范,更是一种·解决callcack深层嵌套·的方案,还是一种带有@H_502_7@then方法支持链式操作的框架.
使用Promise的好处
Javascript的特点是异步,Javascript不能等待,如果你实现某件需要等待的事情,你不能停在那里一直等待结果回来,相反,底线是使用回调callback:你定义一个函数,这个函数只有等到结果返回时才能被调用。
那么为什么这样做好处优于回调呢?标准的回调模式在我们处理请求时需要同时提供回调函数:
request(url, function(error, response) {
// handle success or error.
});
doSomethingElse();
很不幸,这段代码意味着这个request函数并不知道它自己什么时候能够完成,当然也没有必要,我们最终通过回调传递结果。这会导致多个回调形成了嵌套回调,或者称为回调陷阱。
queryTheDatabase(query, function(error, result) {
request(url, function(error, response) {
doSomethingElse(response, function(error, result) {
doAnotherThing(result, function(error, result) {
...
});
});
});
});
Promise能够解决这种问题,允许低层代码创建一个request然后返回一个对象,其代表着未完成的操作,让调用者去决定应该加入什么回调。 因为then返回一个promise,它意味着promise能够被chain串行链条花,这样能避免回调地狱:
//by zhengkai.blog.csdn.net
queryTheDatabase()
.then(request)
.then(doSomethingElse)
.then(doAnotherThing)
.then(...)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。