export const ERROR_PROMISE_TIMEOUT = 'ERROR_PROMISE_TIMEOUT';

export default function (promise, timeout) {
let timer = undefined;
return Promise.race([
new Promise(function (resolve, reject) {
timer = setTimeout(() => {
reject(new Error(ERROR_PROMISE_TIMEOUT));
}, timeout)
}),
promise.then(res => {
timer && window.clearTimeout(timer);
return res;
}).catch(err => {
timer && window.clearTimeout(timer);
return Promise.reject(err);
})
])
}

最新文章

  1. Linux下安装OpenCV+Python支持
  2. fragment 碎片整理
  3. nodejs 的安全
  4. C++ Primer与c++编程思想的比较(转)
  5. EBS R12.2快速安装前没有配置Global Inventory报错
  6. CF 518 D. Ilya and Escalator
  7. Python-Day11 RabbitMQ/redis
  8. return的用法
  9. 多线程与网络之cookies
  10. 关于谷歌、火狐 右键没有发送到onenote选项
  11. c# 调用EXCEL在VS上能正常运行,部署在IIS上不能实现,在VS中运行页面和发布之后在IIS中运行的区别
  12. mysql各种日志对应的配置项
  13. IOS 特定于设备的开发:检查设备接近度和电池状态
  14. 【译】在Asp.Net中操作PDF - iTextSharp - 利用列进行排版
  15. iOS_23_undress Girl
  16. 错误代码和UNICODE编程
  17. Python进程-实现
  18. Oracle profile 使用技巧
  19. Linux学习之CentOS(十四)----磁盘管理之 硬连接与软件连接(转)
  20. python 语法的一些特性记录

热门文章

  1. mysql锁,事务
  2. java成神之——安全和密码
  3. http响应chunked格式分析
  4. Postgresql VACUUM COPY等
  5. Maven+Mybatis+Spring+SpringMVC实现分页查询
  6. Spring配置文件中<bean>标签的scope属性
  7. **python中列表 元组 字典 集合
  8. BurpSuite—-decoder模块(编码模块)
  9. mysql 存储过程动态执行sql语句
  10. asp:GridView控件的使用