首页
学习
活动
专区
圈层
工具
发布

Promise的错误处理

题图 By Clm 在开发过程中我们经常使用Promise来处理异步,但是我们经常忽略Promise的错误处理。 今天带着大家来一起来梳理一下Promise处理错误的几种情况。...第一种情况是直接抛出error,在Promise中抛出错误只有throw和reject这两种方式,并且throw和reject抛出错误在Promise中没有区别,这两种方式都可以被catch所捕获,先看...console.log(e) })) Promise.reject("报错了哦").catch(e=>{ console.log(e) }) 阅读源码发现throw和reject抛出的错误都会被...第二种情况,处理Promise调用链中的错误,如果有一个较长的Promise调用链,其中某个环节抛出错误,错误会被后续链中最近的一个catch所捕获,代码如下: Promise.resolve(1)...第三种情况,Promise.all的异常,一般处理并发的时候,我们需要使用Promise.all,但是如果all中有一个Promise实例出现异常,会导致全部结果被丢弃。

2.6K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    getUserMedia()出现的常见错误

    这个错误就会出现。...不同的Chrome标签页可以共享同一个摄像头。 在mac系统上,这个错误只有在Firefox不止一个标签页尝试获取摄像头和麦克风的时候出现。会提示一个消息“当前麦克风进程受限”。...OverconstrainedError 当你请求一个无法用硬件满足的约束时会出现在这个错误,举个例子,当使用min或者exact关键词请求一个比较高的帧速率或者高的分辨率的时候就会出现此错误。...Chrome和Firefox会返回请求的分辨率,或者当使用了ideal值的时候返回一个最接近的分辨率,但是如果你开始使用的是min关键字并赋予了比较大的值,或者exact关键字含有不支持的值,你就会立即触发这个错误...解决这些错误 使用基于新的promise的getUserMedia()处理这些错误就很简单了。你可以使用下面的代码:

    3.2K30

    奇怪的数字0.577不断出现在我们身边

    π对我们而言,除了在理解圆这方面至关重要之外,它并不是一个特别容易算的数字,因为人们几乎不可能知道它的确切值,它各个位上数字出现的方式并没有规律,要算出π的每个数字我们几乎可以算到无穷。...虽然π有这么不方便的属性,但它由于在自然和数学中不断出现而声名鹊起,就连一些与圆没什么太大关系的地方我们也能看到它。它并不是唯一一个出现得奇怪的数字,0.577也到处都是。...0.577作为欧拉常数(Euler's constant),被定义为两种经典数学序列(自然对数和调和级数)之间的限制区别。...自然对数比调和级数更难解释,但长话短说的解释版本是如果你取自然对数的值与调和级数的值之间的差,那么你就能得到欧拉常数,取欧拉常数小数点后三位,就是0.577了(和π一样,欧拉常数的小数点后有很多位数字,...这个问题本身很有趣,但更奇怪的是欧拉常数不仅能解释看似矛盾的谜语。它出现在各种物理问题中,包括多个量子力学方程。它甚至也存在于科学家们用来寻找希格斯玻色子的方程中。 对此没有人知道为什么。

    1.7K20

    2003安装后蓝屏,ESXI和KVM出现错误

    在虚拟化上安装2003系统后,会出现蓝屏,摸索了一段时间终于搞定了。 139端口是一种TCP端口,该端口在你通过网上邻居访问局域网中的共享文件或共享打印机时就能发挥作用。...139端口一旦被Internet上的某个者利用的话,就能成为一个危害极大的安全漏洞。...因为要是与目标主机的139端口建立连接的话,就很有可能浏览到指定网段内所有工作站中的全部共享信息,甚至可以对目标主机中的共享文件夹进行各种编辑、删除操作,倘若*者还知道目标主机的IP地址和登录帐号的话,...还能轻而易举地查看到目标主机中的隐藏共享信息 445端口是一个毁誉参半的端口,有了它我们可以在局域网中轻松访问各种共享文件夹或共享打印机,但也正是因为有了它,*们才有了可乘之机,他们能通过该端口偷偷共享你的硬盘...,甚至会在悄无声息中将你的硬盘格式化掉!

    1.6K50

    promise 和 async 的用法

    promise // 先构造一个 promise 函数 // resolve 和 reject 都是一个函数 // resolve 在成功时调用 // reject 在失败时调用 function promise...catch 第一个参数为resolve状态时的回调,第二个参数为reject状态时的回调 // catch 相当于 then(null, reject) promise().then( (resolve...resolve 函数传过来的参数 // 第二个 then 接受一个参数是第一个 then 返回的值 promise().then( (resolve) => (resolve + 1) // 接受...() console.log(res) console.log('wait') return res } // async 函数返回 promise 对象 // 只有函数内的 await...语句全部执行完,或者遇到 return 或 抛出错误,才会发生状态改变 // 如果发生错误或状态为 reject 则执行 catch async().then( (res) => console.log

    63850

    解决php_network_getaddresses: getaddrinfo failed错误的奇怪思路

    问题的最终解决也是通过砍掉功能解决的,问题的原因或许来自于长城防火墙,是想解决而无法解决的问题。 那天一个做外贸的客户说,他们自己在美国购买了一个主机,希望我们帮她把网站部署到海外,方便客户访问。...只好打开项目的调试模式,上传后,再次登录,看到错误提示为php_network_getaddresses: getaddrinfo failed。这个错误还蛮少见的,字面意思就是请求网络地址失败。...这个错误本身并没有什么,只是有多个内置函数均能触发此问题。 由于网站前台这两天一直访问正常,唯独后台报错,出错的位置还是登录模块。都不用仔细想就知道肯定是登录请求IP对应的实体地址上造成的。...现在的问题是file_get_contents请求的网络地址是国内的ip138呀,难不成ip138挂了?就顺手访问了一下ip138一切正常。这肯定是网络层了。在主机上ping了下ip138,果然不通。...最后没辙,这就是个后台日志功能,原本和客户业务没什么关联,也是无关紧要的东西,最后跟客户说因为网络的关系,就把这个地址请求给关掉了。

    3.2K20

    Promise和asyncawait的总结

    第一次开始注意到ES6的语法,就是因为Promise,感觉比回调好用,后来又接触到async/await,使用后大大的减少了代码的层次结构,因此觉得有必要总结一下 Promise是ES6的语法,async.../await是ES7的语法 Promise Promise是异步编程的一种解决方案,它有三种状态,分别是: pending:进行中 resolved:已完成 rejected:已失败 之前的方法回调:...后,调用更加灵活了,回调可以处理,也可以不处理,同时可以处理异步调用的异常,更具有通用性 已网络接口调用为例(这里采用ajax): function ajaxPromise( param ) {...: 只要有一个失败了,就会抛出异常 Promise.race: 返回执行最快的那个,无论异常或者失败 async/await await必须使用在async修饰的方法内部 function func1(...,使代码更加清晰,代码中的func1使用await修饰后,可以直接拿到then方法中的结果,同时可以如果不使用Promise.catch方法,则会抛出异常,这时候可以配合’try/catch’使用: function

    59310

    IDEA中调试Topology出现的错误

    在IDEA的maven项目中编写Topology出错: NoClassFound找不到主类:解决– 在pom.xml中,找到中的storm,添加compi kafka中的topic不新建也可以使用...Please update your storm.yaml so it only has config nimbus.seeds 错误原因:更改UI端口只修改了nimbus的,没有修改supervisor.../storm nimbus 则会在下方打印出错误: SLF4J: Class path contains multiple SLF4J bindings....是因为之前提交的topo有slf4j的错误,再次开启storm时就会自动运行[叙述不恰当]而出错 改:删掉之 (使用storm kill不行,因为nimbus已经出错启动不起来了,故而直接删除掉相关文件...) 下图如是:tzl.jar和tzl-depend.jar是之前提交的错误任务,其有slf4j的错误,在启动时好像storm命令会扫描整个目录文件 解决:删掉后,storm nimbus & 完美运行

    2.4K30

    【hacker的错误集】解决写入csv出现乱码和空行问题

    ✅作者简介:大家好我是hacker707,大家可以叫我hacker 个人主页:hacker707的csdn博客 系列专栏:hacker的错误集 推荐一款模拟面试、刷题神器点击跳转进入网站 hacker...错误集 错误内容 错误分析 解决方案 结束语 错误内容 import csv # 数据 person = [ {'姓名': 'xxx', '年龄': 18, '爱好': '学习python'}...file_obj, header) # 写表头 dictWriter.writeheader() # 写入数据 dictWriter.writerows(person) 错误分析...用csv成功写入数据打开Excel会出现乱码和空行 居然:那应该怎么解决呢 解决方案 处理空行问题 在写入数据时传入newline=’ ’ 处理写入Excel打开会出现乱码问题 只需要在原来写入的编码格式

    1.1K50

    使用 Promise 时的5个常见错误,你占了几个!

    Promise 提供了一种优雅的方法来处理 JS 中的异步操作。这也是避免“回调地狱”的解决方案。然而,并没有多少开发人员了解其中的内容。因此,许多人在实践中往往会犯错误。...在本文中,介绍一下使用 promise 时的五个常见错误,希望大家能够避免这些错误。 1.避免 Promise 地狱 通常,Promise是用来避免回调地狱。...但是,Promise本身会在其作用域内捕捉所有的错误(甚至是打字错误),而不需要 try/catch块。它确保在执行过程中抛出的所有异常都被获取并转换为被拒绝的 Promise。...假设我们想在Promise 块中做一个异步操作,所以使用了 async 关键字,但,不巧的是我们的代码抛出了一个错误。...对于HTTP请求,Promise 构造函数和回调函数只有在函数被执行时才会被调用。

    1.1K00

    记录 git 一个很奇怪的错误,以及最近心态调整

    git 一个很奇怪的错误 ACMOI_Journey on  master [⇡] via ?...failure) error: failed to push some refs to 'github.com:PiperLiu/ACMOI_Journey.git' 刚才进行了很多次提交,遇到了如上很奇怪的错误...remote rejected 很常见,哪里『奇怪』呢? 以往, git 都会跟我们讲为什么 reject ,其中大多以 hint: 的形式输出,提示我们比如本地与远程不同步等问题。...就在写这篇推送的关口,好用了,如下。怀疑就是网络问题,不知道和梯子什么的有没有关系。 心态 今晚心态确实有一点崩。 已经连续两天,我的机器因为性能问题,跑数据跑到黑屏或者蓝屏了。...但玩家总有办法通关战役,让阿尔塞斯登上冰封王座和巫妖王合二为一。 我也感觉自己越来越弱了。研究生的日子可能会越来越难,同时我也感觉自己越来越菜(本科时我也确实曾有错觉自己无所不能)。

    1.3K40
    领券