Merge pull request #7226 from electron/power-monitor-error

Rethrow caught errors from process.binding
This commit is contained in:
Cheng Zhao 2016-09-19 15:25:18 +09:00 committed by GitHub
commit ffe931bde7
5 changed files with 14 additions and 11 deletions

View file

@ -44,7 +44,7 @@ v8::Local<v8::Value> PowerMonitor::Create(v8::Isolate* isolate) {
if (!Browser::Get()->is_ready()) { if (!Browser::Get()->is_ready()) {
isolate->ThrowException(v8::Exception::Error(mate::StringToV8( isolate->ThrowException(v8::Exception::Error(mate::StringToV8(
isolate, isolate,
"Cannot initialize \"power-monitor\" module before app is ready"))); "Cannot require \"powerMonitor\" module before app is ready")));
return v8::Null(isolate); return v8::Null(isolate);
} }

View file

@ -97,7 +97,7 @@ v8::Local<v8::Value> Screen::Create(v8::Isolate* isolate) {
if (!Browser::Get()->is_ready()) { if (!Browser::Get()->is_ready()) {
isolate->ThrowException(v8::Exception::Error(mate::StringToV8( isolate->ThrowException(v8::Exception::Error(mate::StringToV8(
isolate, isolate,
"Cannot initialize \"screen\" module before app is ready"))); "Cannot require \"screen\" module before app is ready")));
return v8::Null(isolate); return v8::Null(isolate);
} }

View file

@ -2,16 +2,17 @@
> Monitor power state changes. > Monitor power state changes.
You can only use it in the main process. You should not use this module until the `ready` You cannot require or use this module until the `ready` event of the `app`
event of the `app` module is emitted. module is emitted.
For example: For example:
```javascript ```javascript
const {app} = require('electron') const electron = require('electron')
const {app} = electron
app.on('ready', () => { app.on('ready', () => {
require('electron').powerMonitor.on('suspend', () => { electron.powerMonitor.on('suspend', () => {
console.log('The system is going to sleep') console.log('The system is going to sleep')
}) })
}) })
@ -19,7 +20,7 @@ app.on('ready', () => {
## Events ## Events
The `power-monitor` module emits the following events: The `powerMonitor` module emits the following events:
### Event: 'suspend' ### Event: 'suspend'

View file

@ -2,8 +2,8 @@
> Retrieve information about screen size, displays, cursor position, etc. > Retrieve information about screen size, displays, cursor position, etc.
You cannot use this module until the `ready` event of the `app` module is You cannot require or use this module until the `ready` event of the `app`
emitted (by invoking or requiring it). module is emitted.
`screen` is an [EventEmitter](http://nodejs.org/api/events.html#events_class_events_eventemitter). `screen` is an [EventEmitter](http://nodejs.org/api/events.html#events_class_events_eventemitter).

View file

@ -2,10 +2,12 @@ const timers = require('timers')
process.atomBinding = function (name) { process.atomBinding = function (name) {
try { try {
return process.binding('atom_' + process.type + '_' + name) return process.binding(`atom_${process.type}_${name}`)
} catch (error) { } catch (error) {
if (/No such module/.test(error.message)) { if (/No such module/.test(error.message)) {
return process.binding('atom_common_' + name) return process.binding(`atom_common_${name}`)
} else {
throw error
} }
} }
} }