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

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