基于Promise手动封装ajax

promise-ajax.js

java 复制代码
function ajax({url='xxx', type="get", dataType="json"}) {
  return new Promise((resolve, reject) => {
    let xhr = new XMLHttpRequest();
    xhr.open(type, url, true);
    xhr.responseType = dataType;
    xhr.onload = function () { // xhr.readState=4 xhr.status=200
      if(xhr.status == 200){
        resolve(xhr.response) //成功调用成功的方法
      }else{
        reject('not found');
      }
    };
    xhr.onerror = function (err) {
        reject(err) // 失败调用失败的方法
    };
    xhr.send();
  })
}

使用

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
<body>
  <div id="app"></div>
  <script src="node_modules/vue/dist/vue.js"></script>
  <script src="promise-ajax.js"></script>
  <script>
    let vm = new Vue({
      el: '#app',
      created(){
        ajax({url: './carts.json'}).then((res)=>{
          console.log(res)
        }, (err)=>{
          console.log(err)
        })
      },
      data: {
        products: []
      }
    })
  </script>
</body>
</html>
相关推荐
LongtengGensSupreme1 天前
开放所有跨域 ----前端和后端
前端·后端·ajax·vue·api·jquery
雨雨雨雨雨别下啦2 天前
ajax和axios到底是什么
前端·ajax·okhttp
C_心欲无痕3 天前
网络相关 - Fetch 与 Ajax 请求讲解
前端·网络协议·ajax·fetch
qq_406176144 天前
什么是模块化
开发语言·前端·javascript·ajax·html5
止观止6 天前
告别回调地狱:深入理解 JavaScript 异步编程进化史
javascript·ecmascript·promise·async/await·异步编程·前端进阶
释怀不想释怀6 天前
vue(登录,退出,浏览器本地存储机制)
前端·javascript·vue.js·ajax·html
chilavert3187 天前
技术演进中的开发沉思-284 计算机原理:二进制核心原理
javascript·ajax·计算机原理
Beginner x_u7 天前
从 Promise 到 async/await:一次把 JavaScript 异步模型讲透
javascript·ajax·promise·异步·async await
‿hhh8 天前
综合交通运行协调与应急指挥平台项目说明
java·ajax·npm·json·需求分析·个人开发·规格说明书
释怀不想释怀8 天前
Ajax,vue生命周期(自动加载页面发出请求)Axios
前端·javascript·ajax