zoukankan      html  css  js  c++  java
  • 小程序自定义promise封装request请求(连接超时)

    之前由于项目比较赶  所有草草的封装了一下请求  并没有超时这类的操作;最近闲下来了,所以就补上了;
     
      第一次自己写,难免的,然后把,偶遇了一下promise.race();
    PS::::
    官解———————————————————————————————————————————————————————————————————————————————————————>

    race 函数返回一个 Promise,它将与第一个传递的 promise 相同的完成方式被完成。它可以是完成( resolves),也可以是失败(rejects),这要取决于第一个完成的方式是两个中的哪个。                   

    如果传的迭代是空的,则返回的 promise 将永远等待。

    如果迭代包含一个或多个非承诺值和/或已解决/拒绝的承诺,则 Promise.race 将解析为迭代中找到的第一个值。

    ——————————————————————————————————————————————————————————————————————————————————————————
    ::::
    我的理解===>
        _________
     
          就是说这个promise.race([A,B])    是异步操作,  同时进行的,  就行两个人比赛吃饭;谁先吃完  抛出谁的成绩;另一个停止;
                  __________
     
    看到这么心情那个舒畅啊;
     
      ————————
        然而,不知道我理解错误还是怎么回事,事实并不是如此,我同时执行两个promise请求,依然是不会阻止进程慢的那个;同样由于时间问题没有深究,搞了一个计时器.....
          额,异曲同工吧....反正效果达到了....有时间再去深入;
           ————————
     
    /**
    * 加载超时后显示网络错误提示
    * 当前设置为 等待3秒,若超时后仍未返回请求结果,弹窗提示网络错误
    */
    var timer = undefined;
    function reqPromise(reqUrl, reqData, reqType) {
    return Promise.race([
    new Promise(function (resolve, reject) {
    timer = setTimeout(() => {
    reject(showError("网络连接超时"));
    }, 3000)
    }),post(reqUrl, reqData, reqType)
    .then(res => {
    timer && clearTimeout(timer);
    return res;
    }).catch(err => {
    timer && clearTimeout(timer);
    return Promise.reject(err);
    })
    ])
    }
    /**
    * 弹窗提示网络错误
    */
    function showError() {
     wx.showModal({
     title: '连接超时',
     content: '请检查网络连接',
     showCancel: false,
    })
    }
  • 相关阅读:
    html5中让页面缩放的4种方法
    Beautiful Soup教程 转
    python 第三方模块 转 https://github.com/masterpy/zwpy_lst
    Windows安装Python图像处理库:PIL模块
    python常见的模块
    BeautifulSoup 常用方法
    服务器用户连接数设置
    如何查看IIS并发连接数【转】
    .net 时间戳和日期互转 【转】http://www.cnblogs.com/zhuiyi/p/5307540.html
    Python3学习笔记(urllib模块的使用)转http://www.cnblogs.com/Lands-ljk/p/5447127.html
  • 原文地址:https://www.cnblogs.com/lipuqing180906/p/10214028.html
Copyright © 2011-2022 走看看