(译)基于 Promise 的JavaScript 电池新 API

翻译自JavaScript Battery API: Promises


在 Mozilla 工作使我有很多时间来看新的 API,其中就有Battery API。在这个API刚刚出来的时候,我写过一篇关于这个API的文章。如今这个API已经修改,基于promise API实现了Battery API,而Google Chrome是现在唯一实现这个API的浏览器。让我们来看看如何使用这个API!

我们将要使用的这个方法仍然绑定在navigator对象上,但是如今这个方法叫做getBattery

1
navigator.getBattery().then(function(result) {});

getBattery()方法返回一个promise对象,给回调函数than一个名叫BatteryManager的对象,就像下面:

1
2
3
4
5
6
7
8
9
10
11
// 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 。