V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
love
V2EX  ›  JavaScript

ES6 的 Promise 怎么样才能让一段代码无论成功失败都得以运行呢?貌似没有 finally 方法。

  •  
  •   love · 2015 年 1 月 10 日 · 3989 次点击
    这是一个创建于 4033 天前的主题,其中的信息可能已经有所发展或是发生改变。
    9 条回复    2015-01-12 10:12:09 +08:00
    otakustay
        1
    otakustay  
       2015 年 1 月 10 日 via iPhone
    .then(final, final)
    love
        2
    love  
    OP
       2015 年 1 月 10 日
    @otakustay 这样子不是要重复写二遍代码,或者要先定义一个函数,无论哪个都不方便。我是说别的异步库都有finally功能反而官方的Promise没有这不太合理,毕竟这个功能很常用的。
    bcxx
        3
    bcxx  
       2015 年 1 月 10 日
    @love 你用一个变量把 final 绑定住不就好了么……
    otakustay
        4
    otakustay  
       2015 年 1 月 10 日
    那么……

    Promise.prototype.ensure = function (callback) { this.then(callback, callback); }
    love
        6
    love  
    OP
       2015 年 1 月 10 日
    @otakustay 是的我也看到了,还有一个比较完善的polyfill https://github.com/matthew-andrews/Promise.prototype.finally
    oott123
        7
    oott123  
       2015 年 1 月 11 日 via Android
    诶…?我记得我用的 Q 就有 finally 方法啊…
    oott123
        8
    oott123  
       2015 年 1 月 11 日 via Android
    抱歉抱歉,没看到楼主说的 ES6。
    →_→或许可以考虑第三方库…
    leonlu
        9
    leonlu  
       2015 年 1 月 12 日
    哈哈, 给ES6的标准委员会发邮件呀, 提需求去...
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   993 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 23:24 · PVG 07:24 · LAX 15:24 · JFK 18:24
    ♥ Do have faith in what you're doing.