zoukankan      html  css  js  c++  java
  • 简单封装ajax请求函数

    利用ES8中的async,await关键字自己简单分装一个Ajax请求函数

    1. 首页我们定义一个函数叫做sendAjax,函数内部我们需要返回一个promise对象,这样我们后续就不用通过.then 和.catch这种原始的方法去获取对应的值了
    function sendAjax(method, url) {
            return new Promise((resolve, reject) => {
              //  创建一个XMLHttpRequest实例
              const xhr = new XMLHttpRequest()
              // 传递参数
              xhr.open(method, url)
              // 发送请求
              xhr.send()
              // 监听事件
              xhr.onreadystatechange = function () {
                if (xhr.readyState == 4) {
                  if (xhr.status >= 200 && xhr.status < 300) {
                    // 请求成功
                    resolve(xhr.responseText)
                  } else {
                    // 请求资源失败
                    reject(xhr.status)
                  }
                }
              }
            })
     }
    
    
    1. 接下来我们需要去发送网络请求,去请求数据了

       	// 测试
      	// 我们先使用原来的.then()的方式去获取返回值吧
      
            // 注意这里sendAjax中返回的是一个promise对象
            const result = sendAjax('get', 'https://api.apiopen.top/getJoke').then(
              (result) => console.log(result),
              (reason) => console.log(reason)
            )
            
            
            
          // 在利用配合 async 和 await 尝试一下
            async function main() {
              const result = await sendAjax('get', 'https://api.apiopen.top/getJoke')
              console.log(result)
            }
            main()
      
      
         	//注意这里await 函数必须要放到async 函数中 
      

    哈哈哈啊 请求数据成功!

  • 相关阅读:
    [NOTE]常用Linux命令总结[Thx for commandlinefu]
    [原]隧道Proxy原理详解(基于Node.js)
    [转]MySQL索引详解(1)
    [QA]服务端进程模型
    [转]MySQL索引详解(2)
    非动态规划实现LCS算法
    Java里线程安全的有界容器的实现
    maven历史版本下载
    JDK9下载
    maven排除依赖和添加本地依赖
  • 原文地址:https://www.cnblogs.com/comyan/p/13456826.html
Copyright © 2011-2022 走看看