ES6 原生的 Promise 只有then 和 catch 没有 finally,谁有靠谱的方式加上?
已知的不太靠谱方法,有自己增加一个属性的方式finally,在里面调用 then 或者 catch 但这样只是一个then和catch的合体,并不是真的finally,它不会排在所有 then 所有 catch之后执行。
例如
promise = new Promise(...)
promise.finally().then()
这里后面的 then 会在 finally之后执行,
而真正的finally 应该在所有的 then 或者 catch 完结以后执行。
手工把finally写最后只是掩耳盗铃,
不能假设从此后这个promise不再增加其他的 then 或者catch
比如
promise.then().finally()
....
if xxx:
promise.then(...)
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.