w3ctech

JavaScript 电池 API:Promises

原文地址:http://http://davidwalsh.name/javascript-battery-api

本文由Arthur Tsia翻译

工作在Mozilia公司使我有机会接触一些新的API,电池API就是其中之一。 当电池API刚被引入到浏览器的时候,我有写过相关电池API的文章。其后电池API也一直更新中,基于promise的电池API实现目前仅在谷歌Chrome浏览器里可行。让我们看看怎么使用最新的API!

我们所需要的功能仍是基于navigator对象,但是这次我们称其为 getBattery 方法:

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

getBettery()方法返回promise对象,提供给then()方法的回调函数 给定了一个 BatteryManager 对象,该对象提供了下面的样例信息:

// result:

    BatteryManagery {  
        charging: false,  
        chargingTime: Infinity,
        dischargingTime: 8940,
        level: 0.59,
        onchargingchange: null,
        onchargingtimechange: null,
        ondischargingtimechange: null,
        onlevelchange: null
    }

新的API在执行上是不同地,在运行结果上也不同。值得注意地是在Mac设备电池上旧的API是有问题的,这些问题似乎也没有改变。适配不同浏览器的前缀是种痛苦,除了我们已接受的部分,但是当实现方法完全不同时这确实很烂。我们期待其他浏览器厂商能够尽快更新,让我们看到一个统一,仍是基于浏览器前缀(开玩笑ing)的API。

w3ctech微信

扫码关注w3ctech微信公众号

共收到2条回复