Merge pull request #7226 from electron/power-monitor-error
Rethrow caught errors from process.binding
This commit is contained in:
commit
ffe931bde7
5 changed files with 14 additions and 11 deletions
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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'
|
||||||
|
|
||||||
|
|
|
@ -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).
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue