问题描述
在快应用
开发中,使用 Promise
方式,针对 complete 这种情况,用 finally
不能正常的工作;查阅些资料才知道,快应用官方规范没有对 finally 支持,那么如何解决这个问题呢?
相关代码
import fetch from '@system.fetch'
fetch.fetch({
url: params.url,
method: params.method,
data: params.data
})
.then(response => {
// ....
})
.catch((error, code) => {
console.log(`request fail, code = ${code}`)
})
.finally(() => {
// 无法调用到这里?
})
对于不能够使用
finally
的个情况,可以通过打补丁 (polyfill) 的方式,来予以解决,这在快应用中同样适用;存在的方法比较多,介绍一种相对简单的办法,代码如下:另外补充说明的是,在实际项目开发中,我们可以对数据请求,统一封装并处理,这样就可以提升代码的可用性以及可维护性,具体的思考有在如何优雅处理「快应用」数据请求一文中阐述;相关具体代码如下: