翻譯自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 。