[js] 写一个方法实现promise失败后自动重试

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title>
</head><body></body></html>
<script>Promise.retry = (fun, limit = 5) => {return new Promise((resolve, reject) => {let __num = 1;let __run = () => {fun().then(res => {resolve(res);}).catch(err => {if (__num++ >= limit) {reject(err)} else {console.log('retry again!!')__run()}})}__run()})}let k = 0function test() {return new Promise((resolve, reject) => {if (++k >= 3) {resolve(k)} else {reject('hhh')}})}Promise.retry(test).then(res => {console.log('resolve: ', res)}).catch(err => {console.log('reject: ', err)})// retry again!!// retry again!!// resolve: 3
</script>

运行结果

个人简介

我是歌谣,欢迎和大家一起交流前后端知识。放弃很容易,
但坚持一定很酷。欢迎大家一起讨论

主目录

与歌谣一起通关前端面试题

[js] 写一个方法实现promise失败后自动重试相关推荐

  1. [js] 用js写一个方法检测浏览器是否支持css3的属性

    [js] 用js写一个方法检测浏览器是否支持css3的属性 var div = document.createElement('div'); console.log(div.style.transit ...

  2. [js] 写一个方法获取图片的方向

    [js] 写一个方法获取图片的方向 <!DOCTYPE html> <html> <head><meta charset="utf-8"& ...

  3. [js] 写一个方法遍历指定对象的所有属性

    [js] 写一个方法遍历指定对象的所有属性 Object.keys().Object.values()只能遍历对象自有的属性,for in 可以遍历原型中的属性. 个人简介 我是歌谣,欢迎和大家一起交 ...

  4. [js] 写一个方法,实时验证input输入的值是否满足金额如:3.56(最多只有两位小数且只能数字和小数点)的格式,其它特殊字符禁止输入

    [js] 写一个方法,实时验证input输入的值是否满足金额如:3.56(最多只有两位小数且只能数字和小数点)的格式,其它特殊字符禁止输入 <body><input type=&qu ...

  5. [js] 写一个方法,当给定数字位数不足8位时,则在左边补充0以补足8位数的方法

    [js] 写一个方法,当给定数字位数不足8位时,则在左边补充0以补足8位数的方法 function padNumber(n, targetLen, placeholder) {const arr = ...

  6. [js] 写一个方法判断数组内元素是否全部相同

    [js] 写一个方法判断数组内元素是否全部相同 const isSameArray = function (array) {if (Array.isArray(array)) {return new ...

  7. [js] 写一个方法把科学计数法转换成数字或者字符串

    [js] 写一个方法把科学计数法转换成数字或者字符串 function c(a) { return a.replace(/^(\d+)(?:.(\d+))*eE(\d+)/,(_,a,a1,p,n)= ...

  8. [js] 写一个获取页面中所有checkbox的方法

    [js] 写一个获取页面中所有checkbox的方法 function getAllCheckbox() {return [...document.querySelectorAll('input[ty ...

  9. [js]写一个获取非行间样式的方法

    [js]写一个获取非行间样式的方法 window.getComputedStyle()?window.getComputedStyle(element).attribute:element.curre ...

最新文章

  1. 用一条sql获取分组中最大值时的ID
  2. Silverlight同步(Synchro“.NET研究”nous)调用WCF服务
  3. 单词缩写(abbr.cpp)每日一题
  4. Android MVP模式就是这么回事儿
  5. KVO 的进一步理解
  6. 一个不错的讲解flex 3中自定义事件的文章
  7. android windowsoftinputmode 状态栏冲突,android:windowSoftInputMode属性
  8. ❤️使用Spring注解开发(建议收藏)
  9. Emscripten 单词_免费下载 | 北师大版高中英语教材重点单词汇总(可下载mp3版本)...
  10. fatal error C1010
  11. 7种提高工作效率的Vim操作
  12. 获取抖音无水印视频地址
  13. 大数据整合方案架构总结
  14. ftp、sftp利用bat脚本自动下载以及上传文件
  15. Django项目 | 使用MongoDB存储图片
  16. 命令行 查看自己的系统版本
  17. SimulateSlidingTrack滑动轨迹库:一行代码获取仿真手动滑动轨迹
  18. c语言oj猜灯谜,元宵节灯谜——文学典籍类
  19. FLASH场景切换的几个方法
  20. 联邦学习 深度学习对抗攻击

热门文章

  1. css flexbox模型_CSS Flexbox在全国范围内的公路旅行中得到了解释
  2. 你鼓舞了我是世界杯主题曲吗_选择方法和鼓舞人心的网站列表
  3. 如何在开源社区贡献代码_如何在15分钟内从浏览器获得您的第一个开源贡献
  4. 团队作业——项目Alpha版本发布
  5. 10.Object类
  6. Elasticsearch使用REST API实现全文检索
  7. 设定Word段落的背景色
  8. jQuery实现radio第一次点击选中第二次点击取消功能(转)
  9. AC自动机-HDU2222-模板题
  10. 移动Oracle的用户表空间文件方法