首页 > JavaScript > JavaScript Promise迷你书 > 1.1、什么是Promise

什么是Promise

首先让我们来了解一下到底什么是Promise。

Promise是抽象异步处理对象以及对其进行各种操作的组件。
其详细内容在接下来我们还会进行介绍,Promise并不是从JavaScript中发现的概念。

Promise最初被提出是在 E语言中,
它是基于并列/并行处理设计的一种编程语言。

现在JavaScript也拥有了这种特性,这就是本书所介绍的JavaScript Promise。

另外,如果说到基于JavaScript的异步处理,我想大多数都会想到利用回调函数。

使用了回调函数的异步处理 ---- getAsync("fileA.txt", function(error, result){// <1> if(error){// 取得失败时的处理 throw error; } // 取得成功时的处理 }); ---- <1> 传给回调函数的参数为(error对象, 执行结果)组合

Node.js等则规定在JavaScript的回调函数的第一个参数为 Error 对象,这也是它的一个惯例。

像上面这样基于回调函数的异步处理如果统一参数使用规则的话,写法也会很明了。
但是,这也仅是编码规约而已,即使采用不同的写法也不会出错。

而Promise则是把类似的异步处理对象和处理规则进行规范化,
并按照采用统一的接口来编写,而采取规定方法之外的写法都会出错。

下面是使用了Promise进行异步处理的一个例子 ---- var promise = getAsyncPromise("fileA.txt"); // <1> promise.then(function(result){ // 获取文件内容成功时的处理 }).catch(function(error){ // 获取文件内容失败时的处理 }); ---- <1> 返回promise对象

我们可以向这个预设了抽象化异步处理的promise对象,
注册这个promise对象执行成功时和失败时相应的回调函数。

这和回调函数方式相比有哪些不同之处呢?
在使用promise进行异步处理的时候,我们必须按照接口规定的方法编写处理代码。

也就是说,除promise对象规定的方法(这里的 thencatch)以外的方法都是不可以使用的,
而不会像回调函数方式那样可以自己自由的定义回调函数的参数,而必须严格遵守固定、统一的编程方式来编写代码。

这样,基于Promise的统一接口的做法,
就可以形成基于接口的各种各样的异步处理模式。

所以,promise的功能是可以将复杂的异步处理轻松地进行模式化,
这也可以说得上是使用promise的理由之一。

接下来,让我们在实践中来学习JavaScript的Promise吧。

本文来自互联网用户投稿,不拥有所有权,该文观点仅代表作者本人,不代表本站立场。
访问者可将本网站提供的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。
本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站,邮箱:80764001@qq.com,予以删除。
索引目录
© 2023 PV138 · 站点地图 · 免责声明 · 联系我们 · 问题反馈