2016-01-05 45 views
1

In Bluebird 3.0 changelog它现在说Promise.try与ctx和arts参数现在已被弃用,但与其他弃用警告相反,它不提供任何迁移这些调用的方法。Promise.try with args alternatives

什么是最好的方式迁移到蓝鸟3任何这样的调用?是否可以在某处阅读弃用的原因?

感谢

回答

2

我一直没能找到蓝鸟2.0 API的参考,但如果我理解正确的事物从上下文,你可以使用闭包来实现,像这样的效果:

蓝鸟2.0:

Promise.try(obj.method, obj, arg) 
Promise.try(globalFunction, this, arg) 

蓝鸟3.0:

Promise.try(() => obj.method(arg)) 
Promise.try(() => globalFunction.call(this, arg)) 

或者,如果您无法使用ES2015语法:

Promise.try(function() { return obj.method(arg) }) 
Promise.try(function() { return globalFunction.call(this, arg) }.bind(this))