ajax和promise的结合使用
发布时间:2020-12-16 03:13:10 所属栏目:百科 来源:网络整理
导读:在需要依赖完成的ajax请求可使用promise保证执行顺序 在第一个请求正确返回后再发送第二个请求 /* 定义一个使用promise的ajax请求,这里依赖jquery 参数中请求url为必填参数*/const ajaxPromise= param = { return new Promise((resovle,reject) = { $.ajax({
在需要依赖完成的ajax请求可使用promise保证执行顺序 在第一个请求正确返回后再发送第二个请求 /* 定义一个使用promise的ajax请求,这里依赖jquery 参数中请求url为必填参数 */ const ajaxPromise= param => { return new Promise((resovle,reject) => { $.ajax({ "type":param.type || "get","async":param.async || true,"url":param.url,"data":param.data || "","success": res => { resovle(res); },"error": err => { reject(err); } }) }) } /* 第一个请求 */ let step1 = () => { ajaxPromise({ "url":"",}).then(res => { console.log("第一个请求正确返回==>"+res); step2(res); }).catch(err => { console.log("第一个请求失败"); }) } /* 第二个请求 */ let step2 = (res) => { ajaxPromise({ "type":"get","url":"","data":{"name":res} }).then(res => { console.log("第二个请求正确返回==>"+res); }).catch(err => { console.log("第二个请求失败==>"+err); }) } step1(); 原生js写ajaxpromise对象 const ajaxPromise = param => { return new Promise((resovle,reject) => { var xhr = new XMLHttpRequest(); xhr.open(param.type || "get",param.url,true); xhr.send(param.data || null); xhr.onreadystatechange = () => { var DONE = 4; // readyState 4 代表已向服务器发送请求 var OK = 200; // status 200 代表服务器返回成功 if(xhr.readyState === DONE){ if(xhr.status === OK){ resovle(JSON.parse(xhr.responseText)); } else{ reject(JSON.parse(xhr.responseText)); } } } }) } 关于promise使用时的几点:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |