diff --git a/DOCS.md b/DOCS.md
index 12f528e..ad43842 100644
--- a/DOCS.md
+++ b/DOCS.md
@@ -75,7 +75,7 @@ Emits when a LPF2 Hub device is found.
* [.setMotorSpeed(port, speed, [time])](#BoostHub+setMotorSpeed) ⇒ Promise
* [.setMotorAngle(port, angle, [speed])](#BoostHub+setMotorAngle) ⇒ Promise
* [.connect()](#Hub+connect) ⇒ Promise
- * [.disconnect()](#Hub+disconnect)
+ * [.disconnect()](#Hub+disconnect) ⇒ Promise
* [.subscribe(port, [mode])](#Hub+subscribe) ⇒ Promise
* [.unsubscribe(port)](#Hub+unsubscribe) ⇒ Promise
* ["button" (button, state)](#BoostHub+event_button)
@@ -131,13 +131,14 @@ Connect to the Hub.
**Kind**: instance method of [BoostHub
](#BoostHub)
**Overrides**: [connect
](#Hub+connect)
-**Returns**: Promise
- Resolved when successfully connected.
+**Returns**: Promise
- Resolved upon successful connect.
-### boostHub.disconnect()
+### boostHub.disconnect() ⇒ Promise
Disconnect the Hub.
**Kind**: instance method of [BoostHub
](#BoostHub)
+**Returns**: Promise
- Resolved upon successful disconnect.
### boostHub.subscribe(port, [mode]) ⇒ Promise
@@ -235,7 +236,7 @@ Emits when a rotation sensor is activated.
* [.setLEDRGB(red, green, blue)](#WeDo2Hub+setLEDRGB) ⇒ Promise
* [.setMotorSpeed(port, speed)](#WeDo2Hub+setMotorSpeed) ⇒ Promise
* [.connect()](#Hub+connect) ⇒ Promise
- * [.disconnect()](#Hub+disconnect)
+ * [.disconnect()](#Hub+disconnect) ⇒ Promise
* [.subscribe(port, [mode])](#Hub+subscribe) ⇒ Promise
* [.unsubscribe(port)](#Hub+unsubscribe) ⇒ Promise
* ["button" (button, state)](#WeDo2Hub+event_button)
@@ -290,13 +291,14 @@ Connect to the Hub.
**Kind**: instance method of [WeDo2Hub
](#WeDo2Hub)
**Overrides**: [connect
](#Hub+connect)
-**Returns**: Promise
- Resolved when successfully connected.
+**Returns**: Promise
- Resolved upon successful connect.
-### weDo2Hub.disconnect()
+### weDo2Hub.disconnect() ⇒ Promise
Disconnect the Hub.
**Kind**: instance method of [WeDo2Hub
](#WeDo2Hub)
+**Returns**: Promise
- Resolved upon successful disconnect.
### weDo2Hub.subscribe(port, [mode]) ⇒ Promise
@@ -391,7 +393,7 @@ Emits when a rotation sensor is activated.
* [Hub](#Hub) ⇐ EventEmitter
* [.connect()](#Hub+connect) ⇒ Promise
- * [.disconnect()](#Hub+disconnect)
+ * [.disconnect()](#Hub+disconnect) ⇒ Promise
* [.subscribe(port, [mode])](#Hub+subscribe) ⇒ Promise
* [.unsubscribe(port)](#Hub+unsubscribe) ⇒ Promise
@@ -401,13 +403,14 @@ Emits when a rotation sensor is activated.
Connect to the Hub.
**Kind**: instance method of [Hub
](#Hub)
-**Returns**: Promise
- Resolved when successfully connected.
+**Returns**: Promise
- Resolved upon successful connect.
-### hub.disconnect()
+### hub.disconnect() ⇒ Promise
Disconnect the Hub.
**Kind**: instance method of [Hub
](#Hub)
+**Returns**: Promise
- Resolved upon successful disconnect.
### hub.subscribe(port, [mode]) ⇒ Promise
diff --git a/README.md b/README.md
index 6a9bcc6..266374f 100644
--- a/README.md
+++ b/README.md
@@ -115,7 +115,7 @@ Emits when a LPF2 Hub device is found.
* [.setMotorSpeed(port, speed, [time])](#BoostHub+setMotorSpeed) ⇒ Promise
* [.setMotorAngle(port, angle, [speed])](#BoostHub+setMotorAngle) ⇒ Promise
* [.connect()](#Hub+connect) ⇒ Promise
- * [.disconnect()](#Hub+disconnect)
+ * [.disconnect()](#Hub+disconnect) ⇒ Promise
* [.subscribe(port, [mode])](#Hub+subscribe) ⇒ Promise
* [.unsubscribe(port)](#Hub+unsubscribe) ⇒ Promise
* ["button" (button, state)](#BoostHub+event_button)
@@ -171,13 +171,14 @@ Connect to the Hub.
**Kind**: instance method of [BoostHub
](#BoostHub)
**Overrides**: [connect
](#Hub+connect)
-**Returns**: Promise
- Resolved when successfully connected.
+**Returns**: Promise
- Resolved upon successful connect.
-### boostHub.disconnect()
+### boostHub.disconnect() ⇒ Promise
Disconnect the Hub.
**Kind**: instance method of [BoostHub
](#BoostHub)
+**Returns**: Promise
- Resolved upon successful disconnect.
### boostHub.subscribe(port, [mode]) ⇒ Promise
@@ -275,7 +276,7 @@ Emits when a rotation sensor is activated.
* [.setLEDRGB(red, green, blue)](#WeDo2Hub+setLEDRGB) ⇒ Promise
* [.setMotorSpeed(port, speed)](#WeDo2Hub+setMotorSpeed) ⇒ Promise
* [.connect()](#Hub+connect) ⇒ Promise
- * [.disconnect()](#Hub+disconnect)
+ * [.disconnect()](#Hub+disconnect) ⇒ Promise
* [.subscribe(port, [mode])](#Hub+subscribe) ⇒ Promise
* [.unsubscribe(port)](#Hub+unsubscribe) ⇒ Promise
* ["button" (button, state)](#WeDo2Hub+event_button)
@@ -330,13 +331,14 @@ Connect to the Hub.
**Kind**: instance method of [WeDo2Hub
](#WeDo2Hub)
**Overrides**: [connect
](#Hub+connect)
-**Returns**: Promise
- Resolved when successfully connected.
+**Returns**: Promise
- Resolved upon successful connect.
-### weDo2Hub.disconnect()
+### weDo2Hub.disconnect() ⇒ Promise
Disconnect the Hub.
**Kind**: instance method of [WeDo2Hub
](#WeDo2Hub)
+**Returns**: Promise
- Resolved upon successful disconnect.
### weDo2Hub.subscribe(port, [mode]) ⇒ Promise
@@ -431,7 +433,7 @@ Emits when a rotation sensor is activated.
* [Hub](#Hub) ⇐ EventEmitter
* [.connect()](#Hub+connect) ⇒ Promise
- * [.disconnect()](#Hub+disconnect)
+ * [.disconnect()](#Hub+disconnect) ⇒ Promise
* [.subscribe(port, [mode])](#Hub+subscribe) ⇒ Promise
* [.unsubscribe(port)](#Hub+unsubscribe) ⇒ Promise
@@ -441,13 +443,14 @@ Emits when a rotation sensor is activated.
Connect to the Hub.
**Kind**: instance method of [Hub
](#Hub)
-**Returns**: Promise
- Resolved when successfully connected.
+**Returns**: Promise
- Resolved upon successful connect.
-### hub.disconnect()
+### hub.disconnect() ⇒ Promise
Disconnect the Hub.
**Kind**: instance method of [Hub
](#Hub)
+**Returns**: Promise
- Resolved upon successful disconnect.
### hub.subscribe(port, [mode]) ⇒ Promise
diff --git a/hub.ts b/hub.ts
index 50c866b..3159445 100644
--- a/hub.ts
+++ b/hub.ts
@@ -38,7 +38,7 @@ export class Hub extends EventEmitter {
/**
* Connect to the Hub.
* @method Hub#connect
- * @returns {Promise} Resolved when successfully connected.
+ * @returns {Promise} Resolved upon successful connect.
*/
public connect () {
return new Promise((connectResolve, connectReject) => {
@@ -110,9 +110,14 @@ export class Hub extends EventEmitter {
/**
* Disconnect the Hub.
* @method Hub#disconnect
+ * @returns {Promise} Resolved upon successful disconnect.
*/
public disconnect () {
- this._peripheral.disconnect();
+ return new Promise((resolve, reject) => {
+ this._peripheral.disconnect(() => {
+ return resolve();
+ });
+ });
}