js封装api

1、 http.js   

   import  '../js/jquery-3.3.1.min.js'  //这个地方居然要如此引用

import _url from './config.js'
import util from '../utils/util.js'
import  '../js/jquery-3.3.1.min.js'  //这个地方居然要如此引用

export default {
  /**
   * 传入 headers  data 
   */ 
  post: function (headers, jsonstr, url) {
    return new Promise((resolve, reject) => {
      $.ajax({
        headers: headers,
        type: 'POST',
        url: url,
        // async: false, // 同步
        data: jsonstr
      }).then(res => {
        resolve(res.data)
      }).catch(err => {
        reject(err.data)
      })
    });
  },
  //----------------------------------------------

  request_inner: function (is_hash, json, url) {
    if (url == null) {
      url = _url.obj
    }
    let headers = { 'Content-Type': 'application/x-www-form-urlencoded' }
    var jsonstr = JSON.stringify(json)

    if (is_hash) {
      let loginid = util.getStorage('loginid')
      let hash = util.sha1(jsonstr + loginid)
      headers.token = hash
    }
    console.log(jsonstr)
    // loading.showLoading()
    return new Promise((resolve, reject) => {
      this.post(headers, jsonstr, url)
        .then(res => {
          console.log('res =', res)
          //if (res.statusCode === 200 && res.data != null) { }
          if (res != null) {
            if (res.s != null && res.s != 0) {
              console.log('出错时')
              reject(res) //出错时
            } else {
              console.log('正确时')
              resolve(res) //正确时
            }
          }
          // loading.hideLoading()
        })
        .catch(err => {
          console.log('catch', err)
          reject(err)
          // loading.hideLoading()
        })
    });
  },
  request_pub: function (json, url) {
    return this.request_inner(false, json, url)
  },
  request: function (json, url) {
    return this.request_inner(true, json, url)
  },
 
}

2、sdk.js

import _url from './config.js'
import http from './http.js' 


export default { 
  Api1: function (p1,p2,p3) {
    var json = {
     p1,p2,p3
    } 
    return http.request(json, _url.url1)
  }
}

3、html中使用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- <script type="module" src="./sdk/sdk.js"></script> -->
</head>
<body>
    <script type="module" >
            import enums from "./sdk/enums.js";
            import sdk from "./sdk/sdk.js";
            console.log(enums.enums.lus);
            
            sdk.Api1('admin', '123456', 'veri')

    </script>
</body>
</html>

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: JavaScript Worker API 是 JavaScript 中的一种 Web API,可以在后台线程中运行 JavaScript 代码。您可以使用它来执行耗时的任务,而不会阻塞主线程。 下面是一个简单的 JavaScript Worker API 封装的示例: ``` // 创建一个新的 Worker var worker = new Worker('worker.js'); // 向 Worker 发送数据 worker.postMessage({'msg': 'Hello World!'}); // 从 Worker 接收数据 worker.onmessage = function(e) { console.log('Worker said: ', e.data); } ``` 在上面的示例中,我们创建了一个名为 "worker.js" 的 Worker,然后向它发送一条消息。Worker 接收到消息后,会发送一条回复消息。 ### 回答2: JavaScript Worker API 是一种使多线程编程成为可能的技术,它允许在后台运行的独立线程中执行 JavaScript 代码,以提高网页性能和用户体验。在使用 Worker API封装源代码时,可以遵循以下步骤: 1. 创建一个新的 Worker 对象:使用工厂函数 `new Worker()` 来实例化一个新的 Worker 对象。可以将需要在后台执行的 JavaScript 源代码文件的路径作为参数传递给该函数。 2. 添加事件监听器:通过使用 `addEventListener()` 方法,为 Worker 对象添加适当的事件监听器来处理 Worker 线程的事件。其中最重要的事件是 `message` 和 `error` 事件。 3. 在主线程中发送消息:通过调用 `postMessage()` 方法,在主线程中将消息发送到 Worker 线程中。可以将任何类型的数据作为参数传递给该方法。 4. 在 Worker 线程中接收消息:在 Worker 线程中使用 `onmessage` 事件监听器来接收在主线程中发送的消息。通过监听事件对象的 `data` 属性,可以获取来自主线程的数据。 5. 处理接收到的消息:在 Worker 线程中,使用接收到的消息来执行必要的操作。可以通过读取事件对象的 `data` 属性来获取主线程发送的数据。 6. 在 Worker 线程中发送消息:类似地,在 Worker 线程中,可以使用 `postMessage()` 方法将消息发送回主线程。主线程可以通过监听 `message` 事件来接收这些消息。 7. 结束 Worker 线程:在适当的时候,可以调用 `terminate()` 方法来结束 Worker 线程的执行。 封装 JavaScript Worker API 的源代码需要遵循以上步骤以实现多线程的并行处理,提高网页性能和用户体验。通过合理使用 Worker API,可以在后台执行复杂的任务,如图像处理、数据计算和网络请求,而不会阻塞主线程的执行。这样可以确保用户界面的流畅运行,并提高网页的响应速度。 ### 回答3: JavaScript Worker API 提供了一种在后台线程中执行 JavaScript 代码的方法,以避免主线程中的阻塞。以下是对 JavaScript Worker API 源代码封装的概述。 首先,我们需要创建一个新的 Worker 对象,通过指定 JavaScript 文件的 URL 来加载要执行的后台脚本。这可以通过以下代码实现: ```javascript const worker = new Worker('worker.js'); ``` 接下来,我们可以通过在主线程中使用 postMessage 方法向 Worker 发送消息,并通过 onmessage 事件监听来自 Worker 的响应。Worker 进程中的代码可以通过使用 self 关键字访问自身,使用 addEventListener 方法监听来自主线程的消息,并使用 postMessage 方法向主线程发送响应。下面是一个示例: ```javascript // 主线程 worker.postMessage('Hello from main thread!'); worker.onmessage = function(event) { console.log('Worker said:', event.data); }; // Worker 进程 self.addEventListener('message', function(event){ console.log('Message from main thread:', event.data); self.postMessage('Hello from worker!'); }); ``` 在以上示例中,主线程向 Worker 发送消息并监听响应,而 Worker 进程接收来自主线程的消息并发送响应。 另外一个重要的功能是监听错误事件,以便及时处理可能出现的问题。我们可以使用 onerror 事件监听来自 Worker 进程的错误,并在发生错误时采取相应的措施。以下是一个示例: ```javascript worker.onerror = function(event) { console.log('Worker error:', event.message); }; ``` 除了上述基本功能,JavaScript Worker API 还提供了其他一些方法和属性,例如终止 Worker 进程、关闭 Worker 进程、测量 Worker 执行时间等。 总结起来,JavaScript Worker API 允许我们在后台线程中执行 JavaScript 代码,以提高主线程的性能。我们可以通过创建 Worker 对象、使用 postMessage 和 onmessage 监听来回传递消息,并在主线程和 Worker 进程之间实现双向通信。此外,我们还可以监听错误事件并采取相应的措施来处理错误。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值