公司动态

【技术分享】Promise.try()

📅 2026/8/3 6:37:56
【技术分享】Promise.try()
功能介绍捕获代码错误不论是同步的还是异步的。详细说明下面的函数有一半的概率抛出一个同步错误一半的概率返回一个异步数据。function fetchData() { if(Math.random() 0.5) throw Error(同步错误) return Promise.resolve(数据) }如果在函数执行后使用Promise的.catch()方法只能捕获到异步的错误同步报错不进入.catch()中。fetchData() .then(data { console.log(成功, data) }) .catch(err { console.log(失败, err) })如果不使用Promise.try()方法需要写成try { fetchData() .then(data { console.log(成功, data) }) .catch(err { console.log(失败, err) }) } catch(error) { console.log(失败, err) }才能捕获到同步错误。使用Promise.try()后则可以简化为Promise.try( fetchData() .then(data { console.log(成功, data) }) .catch(err { console.log(失败, err) }) )可以统一对不同的两种报错进行处理。