Jquery ajax,Axios,Fetch,Promise、Generator、Async

ajax最早出现的发送后端请求技术,它的核心是XMLHttpRequest对象,如果出现多个请求就会出现回调地狱的问题。

Jquery ajax是JQuery底层AJAX实现,他的$.ajax()返回他创建的XMLHttpRequest对象,增加了对JSONP的支持。

Axios 需要进行安装,既可以在客户端使用,也可在node.js使用。它是基于Promise对象的。

Fetch 提供了对请求和响应对象的定义,使其之后可以被使用到多个场景。Fetch是ajax的替代品,在结构上比ajax简单,基于Promise,它是通过原生js实现的。

Promise是一个异步对象,它的缺点是:

    1.无法取消Promise,一旦新建他就会立即执行

    2.不设置回调函数,内部错误无法反映到外部

    3.当处于pending状态时,无法得知目前进展

    4.当Promise真正执行回调的时候,定义的那部分实际上已经走完了,所以Promise报错堆栈上下文不太友好

Generator是ES6引入的新语法,他是一个可以暂停和继续执行的函数,他的语法主要是包括两个部分:一是函数前加*,二是yield关键字返回值。它里面有一个next方法,可以带一个参数,该参数会被当做上一个yield表达式的返回值。

Async/Await 让代码简洁,不需要像Promise一样需要then,避免了代码的嵌套,在错误处理上,rty/catch可以同时处理同步和异步错误。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值