jspromise异步请求用法(js中Promise的用法介绍)

首先了解一下什么是Promise

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

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

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

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

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

var promise = getAsyncPromise("fileA.txt"); //返回promise对象

promise.then(function(result){

// 获取文件内容成功时的处理

}).catch(function(error){

// 获取文件内容失败时的处理

});

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

  • resolve(成功)时

    onFulfilled会被调用

  • reject(失败)时

    onRejected 会被调用

  • onFulfilled、onRejected 两个都为可选参数。

    promise.then 成功和失败时都可以使用。 另外在只想对异常进行处理时可以采用 promise.catch(onRejected)这种方式,只指定reject时的回调函数即可。 不过这种情况下 应该是个更好的选择。

    promise.catch(onRejected)

    3、Static Method

    像 Promise 这样的全局对象还拥有一些静态方法。

    包括Promise.all()

    还有 Promise.resolve()等在内,主要都是一些对Promise进行操作的辅助方法。

    我们先来看一看下面的示例代码。

    jspromise异步请求用法(js中Promise的用法介绍)(1)

    Promise构造器之后,会返回一个promise对象

    为promise对象用设置 .then调用返回值时的回调函数。

    asyncFunction这个函数会返回promise对象, 对于这个promise对象,我们调用它的then方法来设置resolve后的回调函数, catch方法来设置发生错误时的回调函数。

    该promise对象会在setTimeout之后的16ms时被resolve, 这时then的回调函数会被调用,并输出'Async Hello world 。

    在这种情况下catch的回调函数并不会被执行(因为promise返回了resolve), 不过如果运行环境没有提供setTimeout函数的话,那么上面代码在执行中就会产生异常,在catch中设置的回调函数就会被执行。

    当然,像promise.then(onFulfilled, onRejected) 的方法声明一样, 如果不使用catch方法只使用 then方法的话,如下所示的代码也能完成相同的工作。

    了解更多请扫描下面二维码关注。

    jspromise异步请求用法(js中Promise的用法介绍)(2)

    jspromise异步请求用法(js中Promise的用法介绍)(3)

    jspromise异步请求用法(js中Promise的用法介绍)(4)

    ,

    免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

      分享
      投诉
      首页