如何给小程序的promise增加finally?

来源:14-3 高阶组件示例1:搜索组件

慕码人1018289

2018-10-25

我需要promise.then()之后来个finally,比如加载数据的时候,我又加载loading图标又加锁,数据来了之后再解。但是如果异常了,也需要解锁等工作,没有finally,就要手动补充then中的reject处理和catch,有些麻烦。我查了查网上,说这样的代码可以增加finally:
Promise.prototype.finally = callback => {
return this.then(
value => this.constructor.resolve(callback()).then(() => value),
reason => this.constructor.resolve(callback()).then(() => { throw reason })
)
}
自己定义一个finally。可是我把这段代码放到哪里,都会报错,因为找不到里面的this。我想了想,应该是需要在promise的那个文件里修改。可是小程序把promise的文件放哪里了呢?我又怎么能修改这个文件呢?

写回答

2回答

王小错

2021-01-13

你把箭头函数换成function

0
0

7七月

2018-10-25

我不太明白什么是小程序的promise,对于promise是ES6语法和小程序没有关系。正常的使用finally即可啊

0
0

纯正商业级微信小程序应用实战,全方位小程序特性讲解

真实数据的高质量小程序项目,学会直接工作

4782 学习 · 2125 问题

查看课程