一、resolve

当a>0时,正常情况依次输出A、B、C

	console.log("A");
let result = await this.test();
console.log("C:",result); private test(){
return new Promise((resolve,reject)=>{
console.log("B");
let a = 3;
if(a > 0){
resolve(a);
}else{
reject(0);
}
});
}

二、没有处理失败信息,导致程序无法继续执行

当a<0时。输出A、B后,C无法输出,程序无法继续往下执行。

	console.log("A");
let result = await this.test();
console.log("C:",result); private test(){
return new Promise((resolve,reject)=>{
console.log("B");
let a = -3;
if(a > 0){
resolve(a);
}else{
reject(0);
}
});
}

三、catch

增加catch处理错误,程序可以继续执行

	console.log("A");
let result = await this.test();
console.log("C:",result); private test(){
return new Promise((resolve,reject)=>{
console.log("B");
let a = -3;
if(a > 0){
resolve(a);
}else{
reject(0);
}
}).catch((err)=>{
console.log("err:", err);
});
}

这样也可以

let result = await this.test().catch(()=>{});

  

四、使用then处理错误,程序继续执行

换一种写法,使用then。

	console.log("A");
let result = await this.test().then((res)=>{
console.log("success:", res);
},(res)=>{
console.log("fail:", res);
});
console.log("C:",result); private test(){
return new Promise((resolve,reject)=>{
console.log("B");
let a = -3;
if(a > 0){
resolve(a);
}else{
reject(0);
}
});
}

五、在await处使用catch,程序继续执行

    protected async createGameScene() {
console.log("A");
let result = await this.test().catch((err)=>{console.log("err:",err)});
console.log("C:",result);
} private test(){
return new Promise((resolve,reject)=>{
console.log("B");
let a = -3;
if(a > 0){
resolve(a);
}else{
reject(0);
}
});
}

六、在test里catch后,程序会不执行then的reject,而是resolve。

    protected async createGameScene() {
console.log("A");
let result = await this.test().then((res)=>{
console.log("C:",res);
},(res)=>{
console.log("D:",res)
}).catch((err)=>{console.log("E:",err)});
console.log("F:",result);
} private test(){
return new Promise((resolve,reject)=>{
console.log("B");
let a = -3;
if(a > 0){
resolve(a);
}else{
reject(0);
}
}).catch((err)=>{console.log("test err:", err)});
}

  

Promise在await报错后,如何继续往下跑...的更多相关文章

  1. 从async await 报错Unexpected identifier 谈谈对上下文的理解

    原文首发地址: 先简单介绍下async await: async/await是ES6推出的异步处理方案,目的也很明确:更好的实现异步编程.   详细见阮大神 ES6入门 现在说说实践中遇到的问题:使用 ...

  2. DB2 sql报错后查证原因与解决问题的方法

    1.对于执行中的报错,可以在db2命令行下运行命令 : db2=>? SQLxxx 查看对应的报错原因及解决方法. 2.错误SQL0206N SQLSTATE=42703  检测到一个未定义的列 ...

  3. 【转】Latex编译报错后中断编译并改正,然后重复出现不明原因报错的解决方法

    转自:https://www.douban.com/note/419828344/ 目录: 一.问题描述 二.测试情况(可以跳过,直接看建议) 三.建议 四.参考资料 正文: 问题描述: 错漏某个符号 ...

  4. python踩坑系列——报错后修改了.py文件,但是依然报错

    一开始.py文件中的函数名大小写错了,但是在终端是对的,报错: 'module' object has no attribute '某函数名' 后来就去修改.py文件.结果重新import该.py文件 ...

  5. Git Push大文件报错后如何撤回

    昨晚在提交一个项目代码时,不小心把数据库备份文件也一起Commit了:到最后Push的时候报错了.最后弄了半天解决了,在此记录下. 如下图,文件有108M. 项目放在第三方托管平台上,根据提示查看了原 ...

  6. Java-Web中访问某个指定工程中的文件,报错后发现访问的文件是另一个工程里面的文件

    问题: 浏览器向我的bingou项目中的UserDaoImpl.java发送请求, myeclipse报错:空指针异常 点击报错行之后,错误给定位到了另一个项目中的的一个文件 解决: 原因是文件名错误 ...

  7. 安装node-sass及报错后解决方案

    使用npm install 命令安装node-sass时,经常出现安装失败的情况.原因在于npm服务器在美国,还有就是某强大的防火墙作用.导致模块无法下载. 1 npm install node-sa ...

  8. @transactional注解,报错后数据库操作回滚失败

    1. https://jingyan.baidu.com/article/3a2f7c2e27d51b26afd611ff.html 2. https://blog.csdn.net/lee_star ...

  9. Vue -- 项目报错整理(2):IE报错 - ‘SyntaxError:strict 模式下不允许一个属性有多个定义‘ ,基于vue element-ui页面跳转坑的解决

随机推荐

  1. MD5 哈希等各种加密方式 都是对这个对象进行各种运算, 然后得出1个字符串

    你列出的4个  都是对对象的 加密算法

  2. 【Intel AF 2.1 学习笔记二】AF中的页面——Panel

    Panel Panel控件是你的app中的独立内容的区域控件.它是af UI的核心.Panel div 元素实际上承载了app中你管理和显示的界面元素和内容. 创建panel控件是相当地容易的:在id ...

  3. Markdown编辑器Editor.md使用方式

    摘要: 搭建个人博客时,涉及文章上传,文章展示,这里需要一个Markdown插件,mark一下. Editormd下载地址:http://pandao.github.io/editor.md/ 由于前 ...

  4. [转]Python多线程与多线程中join()的用法

    https://www.cnblogs.com/cnkai/p/7504980.html Python多线程与多进程中join()方法的效果是相同的. 下面仅以多线程为例: 首先需要明确几个概念: 知 ...

  5. [转]IOS 崩溃日志分析

    以下是一个crash log示例: // 1: Process Information Incident Identifier: 30E46451-53FD--896A-457FC11AD05F Cr ...

  6. aspose导出excel文件

    using Aspose.Cells; using System; using System.Collections.Generic; using System.Data; using System. ...

  7. Android播放器推荐:可以播放本地音乐、视频、在线播放音乐、视频、网络收音机等

    下载链接:http://www.eoeandroid.com/forum.php?mod=attachment&aid=MTAxNTczfGMyNjNkMzFlfDEzNzY1MzkwNTR8 ...

  8. DB索引、索引覆盖、索引优化

    ###########索引########### @see   http://mp.weixin.qq.com/s/4W4iVOZHdMglk0F_Ikao7A 聚集索引(clustered inde ...

  9. iscroll5实现下拉加载更多

    1 下载最新的iscroll5,本文版本是5.1.3 2 提取iscroll-probe.js,选择这个文件的原因是我们要给iscroll扩展一个事件,需要用到probeType 属性 3 修改isc ...

  10. HDU 5083 Instruction(字符串处理)

    Problem Description Nowadays, Jim Green has produced a kind of computer called JG. In his computer, ...