新客户端JavaScript库的回调或承诺?

时间:2017-06-26 11:38:00

标签: javascript promise es6-promise client-side-scripting

截至2017年,所有当前版本的网络浏览器都支持ES6承诺。

如果我现在要创建一个浏览器端的JavaScript库,那么使用回调式函数与使用promises的优缺点(或相关注意事项)是什么?是否仍然可以考虑使用回调?

注意:库的操作与I / O相关,因此异步操作非常合适,所以我不认为同步操作是一种选择。

1 个答案:

答案 0 :(得分:2)

嗯,当然你应该使用承诺。它只是处理异步事物的更好的概念框架。如果你不这样做,那么90%的用户会做的第一件事就是将你的API包装成承诺,而你不想让他们这样做,对吗?

理论上,您可以采用双模式方法,即存在或不存在callback参数控制特定API是以回调还是类似承诺的方式运行。许多在预承诺日扎根的图书馆采用这种方式。很遗憾你会想把这种方法用于一个新的库。

如果您不喜欢或无法使用原生承诺,您可以将您的图书馆与用户选择的承诺库集成。用户将使用initNcasasLibrary(Promise)之类的内容初始化您的库。或者,您可以让用户确保Promise可用,如果他定位的浏览器可能没有填充,请确保包含填充。