async与await捕捉错误是怎样的
Admin 2022-11-15 群英技术资讯 287 次浏览
<template> <div class="hello"> </div> </template> <script> export default { name: 'HelloWorld', created() { this.init() }, methods: { init() { let p1 = new Promise((resolve) => { setTimeout(() => { resolve(666) }, 1000) }) async function run() { let res = await p1 console.log('res', res) } run() // 正常的调用时候:log输出 666 }, }, } </script>
<template> <div class="hello"> <h1>{{ msg }}</h1> <p> For a guide and recipes on how to configure / customize this project,<br /> check out the <a href="https://cli.vuejs.org" target="_blank" rel="noopener">vue-cli documentation</a>. </p> <h3>Installed CLI Plugins</h3> <ul> <li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-babel" target="_blank" rel="noopener">babel</a></li> <li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-eslint" target="_blank" rel="noopener">eslint</a></li> </ul> <h3>Essential Links</h3> <ul> <li><a href="https://vuejs.org" target="_blank" rel="noopener">Core Docs</a></li> <li><a href="https://forum.vuejs.org" target="_blank" rel="noopener">Forum</a></li> <li><a href="https://chat.vuejs.org" target="_blank" rel="noopener">Community Chat</a></li> <li><a href="https://twitter.com/vuejs" target="_blank" rel="noopener">Twitter</a></li> <li><a href="https://news.vuejs.org" target="_blank" rel="noopener">News</a></li> </ul> <h3>Ecosystem</h3> <ul> <li><a href="https://router.vuejs.org" target="_blank" rel="noopener">vue-router</a></li> <li><a href="https://vuex.vuejs.org" target="_blank" rel="noopener">vuex</a></li> <li><a href="https://github.com/vuejs/vue-devtools#vue-devtools" target="_blank" rel="noopener">vue-devtools</a></li> <li><a href="https://vue-loader.vuejs.org" target="_blank" rel="noopener">vue-loader</a></li> <li><a href="https://github.com/vuejs/awesome-vue" target="_blank" rel="noopener">awesome-vue</a></li> </ul> </div> </template> <script> export default { name: 'HelloWorld', props: { msg: String, }, created() { this.init() }, methods: { init() { let p1 = new Promise((reject) => { setTimeout(() => { reject(new Error('错误了哦')) }, 1000) }) async function run() { try { let res = await p1 console.log('res', res) } catch (error) { console.log('error', error) } } run() // 报错运行 res Error: 错误了哦 }, }, } </script>
没有try {} catch {} 捕捉错误的
<template> </template> <script> export default { name: 'HelloWorld', props: { msg: String, }, created() { this.init() }, methods: { init() { let p1 = new Promise((resolve) => { setTimeout(() => { // reject(new Error('错误了哦')) resolve(1) }, 1000) }) let p2 = function (arg) { return new Promise((reject) => { setTimeout(() => { console.log('arg', arg) reject(new Error('错误了哦')) }, 1000) }) } async function run() { const res1 = await p1 console.log('res1', res1) // 1 const res2 = await p2(res1) console.log('res2', res2) // res2 Error: 错误了哦 } run() }, }, } </script>
适使用try{} catch {} 捕捉错误的
<template> <div>HelloWorld</div> </template> <script> export default { name: 'HelloWorld', components: {}, data() { return {} }, created() { this.init() }, methods: { init() { let p1 = new Promise((resolve) => { setTimeout(() => { // reject(new Error('错误了哦')) resolve(1) }, 1000) }) let p2 = function (arg) { return new Promise((reject) => { setTimeout(() => { console.log('arg', arg) reject(new Error('错误了哦')) }, 1000) }) } async function run() { try { var res1 = await p1 console.log('res1', res1) } catch (error) { return new Error('error1', error) } try { const res2 = await p2(res1) console.log('res2', res2) } catch (error) { return new Error('error2', error) } } run() }, }, } </script> <style lang="scss" scoped></style>
效果
await-to-js官网
yarn add await-to-js -S
<template> <div>HelloWorld</div> </template> <script> import awaitTo from 'await-to-js' export default { name: 'HelloWorld', components: {}, data() { return {} }, created() { this.init() }, methods: { init() { let p1 = new Promise((resolve) => { setTimeout(() => { // reject(new Error('错误了哦')) resolve(1) }, 1000) }) let p2 = function (arg) { return new Promise((reject) => { setTimeout(() => { console.log('arg', arg) reject(new Error('错误了哦')) }, 1000) }) } async function run() { const [err, res1] = await awaitTo(p1) if (err) throw new Error('错误1') console.log('res1', res1) const [err2, res2] = await awaitTo(p2(res1)) if (err2) throw new Error('错误2') console.log('res2', res2) } run() }, }, } </script> <style lang="scss" scoped></style>
效果:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要给大家介绍了关于vue组件的路由高亮问题的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
这篇文章主要介绍了nodejs报digital envelope routines::unsupported错误的最新解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
目录前言宏任务宏任务队列微任务微任务队列Event-Loop执行顺序结语前言首先我们要了解javascript是一个单线程的脚本语言,也就是说我们在执行代码的过程中不会出现同时进行两个进程(执行两段代码)。Javascript语言将任务的执行模式分成两种:同步(Synchronous)和异步(Asynchronous)
这篇文章主要介绍了CocosCreator系统事件是怎么产生及触发的,虽然内容不少,但是只要一点点抽丝剥茧,具体分析其内容,就会豁然开朗
在web开发中我们可能会遇到页面局部刷新的需求,那么我们要如何来实现呢?这篇文章就给大家分享一下ajax+jquery实现页面某一个div刷新效果的实例代码,希望大家理解和学习页面局部刷新的知识有所帮助。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008