promise中调用ajax
2017-08-25 15:03
239 查看
Promise是异步里面的一种解决方案,解决了回调嵌套的问题,es6将其进行了语言标准,同意了用法,提供了`promise`对象, promise对象有三种状态:pending(进行中) 、Resolved(已经完成)和Rejected(已失败)
ES6规定,Promise对象是一个构造函数,用来生成Promise实例。
Promise实例生成以后,可以用
案例
ajax
如果把下一步想要的东西return出去,即可让下一个then使用
上面的代码还可以借用箭头函数简写成,极大提升了代码的简洁性和可读性
另外,then方法指定的回调函数,如果运行中抛出错误,也会被catch方法捕获。
如果Promise状态已经变成Resolved,再抛出错误是无效的。
catch方法返回的还是一个Promise对象,因此后面还可以接着调用then方法。
ES6规定,Promise对象是一个构造函数,用来生成Promise实例。
then方法分别指定
Resolved状态和
Reject状态的回调函数。
var
http = {
Promise三种状态
pending、resolved、rejected使用语法
var promis = new Promise(function(resolve,reject){ $.ajax({ url:'/api/something.json', method:'get', datatype:'json', success:(res) =>{ resolve(res) }, error:(err)=>{ reject(err) } }) }) promis.then(function(res){ console.log(res) }).catch(function(err){ console.log(err) });
Promise.prototype.then()
链式调用,状态变为resolve如果把下一步想要的东西return出去,即可让下一个then使用
var promise = new Promise(function(resolve,reject){ $.ajax({ url:'/api/poisearch.json', method:'get', datatype:'json', success:(res) =>{ resolve(res) }, error:(err)=>{ reject(err) } }) }) promise.then(function(res){ return res.data }).then(function(data){ return data.result; }).then(function(result){ console.log(result) });
上面的代码还可以借用箭头函数简写成,极大提升了代码的简洁性和可读性
promise.then(res => res.data) .then(data => data.result) .then(result => console.log(result));
Promise.prototype.catch()
如果异步操作抛出错误,状态就会变为Rejected,就会调用catch方法指定的回调函数,处理这个错误。另外,then方法指定的回调函数,如果运行中抛出错误,也会被catch方法捕获。
如果Promise状态已经变成Resolved,再抛出错误是无效的。
catch方法返回的还是一个Promise对象,因此后面还可以接着调用then方法。
相关文章推荐
- ajax直接调用后台
- 不用AJAX实现前台JS调用后台C#方法(小技巧) (转)
- ECSHOP中ajax的调用原理
- ajax请求外部调用请求中回调函数中的数据
- 详谈Ajax请求中的async:false/true的作用(ajax 在外部调用问题)
- onbeforeunload事件中调用Ajax实现用户注销操作(兼容IE、Firefox、Chrome)
- ajax调用WebService服务
- AjaxPro.2 js调用后台方法
- jQuery.ajax()调用asp.net后台方法
- JS脚本使用AJAX调用远程服务后获取返回的错误信息
- ajax调用一般处理程序的多个方法
- DEDE利用Ajax实现调用当前登录会员的信息简要说明
- AJAX ScriptManagerProxy调用webservice
- Oracle Application Express (APEX 4.2) 中进行ajax调用
- AjaxPro实现异步调用,解决浏览器假死及超时问题
- ajax 跨域调用详解
- js调用大全含ajax
- ActiveMQ之Ajax调用
- ASP.NET4.0 Ajax实例 –Javascript调用 ADO.NET Data Service实现数据库操作
- jQuery简单的Ajax调用示例