翻译自JavaScript Battery API: Promises
在 Mozilla 工作使我有很多时间来看新的 API,其中就有Battery API。在这个API刚刚出来的时候,我写过一篇关于这个API的文章。如今这个API已经修改,基于promise API实现了Battery API,而Google Chrome是现在唯一实现这个API的浏览器。让我们来看看如何使用这个API!
我们将要使用的这个方法仍然绑定在navigator
对象上,但是如今这个方法叫做getBattery
:
navigator.getBattery().then(function(result) {});
getBattery()
方法返回一个promise对象,给回调函数than
一个名叫BatteryManager
的对象,就像下面:
// result:
BatteryManagery {
charging: false,
chargingTime: Infinity,
dischargingTime: 8940,
level: 0.59,
onchargingchange: null,
onchargingtimechange: null,
ondischargingtimechange: null,
onlevelchange: null
}
这个新API在实现上和之前不同,但是给出了与之前类似的结果。老的API在MAC设备上有一些问题,而且并没有改进。各个浏览器都有自己的专有前缀确实令人难过,但我们慢慢习惯和接受了一点,但是如果各个浏览器方法名完全不一样那确实是太糟糕了。所以我希望各个浏览器赶紧升级和改进,让我们又可以使用统一的,browser-prefixed (开玩笑,哈哈) API 。