hunter-open-sdk 2.0.0-beta.3 → 2.0.0-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -14,7 +14,8 @@ var childProcess = require('child_process');
14
14
  var exec = childProcess.exec;
15
15
  var hadRegisterUsb = false; // 是否已经注册过usb事件
16
16
  var isPause = false; // 是否暂停获取sn
17
-
17
+ var attachHandler = null;
18
+ var detachHandler = null;
18
19
  // mac获取sn
19
20
  var getMacSn = /*#__PURE__*/function () {
20
21
  var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(device, callBack) {
@@ -161,13 +162,24 @@ var getWinSn = /*#__PURE__*/function () {
161
162
  * @param {Object} params - 参数
162
163
  * @param {Function} callBack - 回调函数
163
164
  */
165
+
164
166
  var GetAndroidSn = exports.GetAndroidSn = function GetAndroidSn(params, callBack) {
165
167
  if (hadRegisterUsb) {
166
168
  isPause = false;
167
169
  return;
168
170
  }
169
171
  hadRegisterUsb = true;
170
- _usb.usb.on('attach', /*#__PURE__*/function () {
172
+
173
+ // 先移除可能存在的旧监听器
174
+ if (attachHandler) {
175
+ _usb.usb.removeListener('attach', attachHandler);
176
+ }
177
+ if (detachHandler) {
178
+ _usb.usb.removeListener('detach', detachHandler);
179
+ }
180
+
181
+ // 定义处理函数并保存引用
182
+ attachHandler = /*#__PURE__*/function () {
171
183
  var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(device) {
172
184
  var idVendor;
173
185
  return _regenerator.default.wrap(function _callee3$(_context3) {
@@ -192,37 +204,40 @@ var GetAndroidSn = exports.GetAndroidSn = function GetAndroidSn(params, callBack
192
204
  eventCode: 0
193
205
  }
194
206
  });
195
- if (!(0, _utils.isMac)()) {
196
- _context3.next = 9;
197
- break;
198
- }
199
- // mac获取sn
200
- getMacSn(device, callBack);
201
- return _context3.abrupt("return");
202
- case 9:
203
- if (!(0, _utils.isWin)()) {
204
- _context3.next = 12;
205
- break;
207
+ if ((0, _utils.isMac)()) {
208
+ getMacSn(device, callBack);
209
+ } else if ((0, _utils.isWin)()) {
210
+ getWinSn(device, callBack);
206
211
  }
207
- // win获取sn
208
- getWinSn(device, callBack);
209
- return _context3.abrupt("return");
210
- case 12:
212
+ case 7:
211
213
  case "end":
212
214
  return _context3.stop();
213
215
  }
214
216
  }, _callee3);
215
217
  }));
216
- return function (_x5) {
218
+ return function attachHandler(_x5) {
217
219
  return _ref3.apply(this, arguments);
218
220
  };
219
- }());
220
- _usb.usb.on('detach', function () {
221
- if (isPause) {
222
- return;
223
- }
224
- });
221
+ }();
222
+ detachHandler = function detachHandler() {
223
+ if (isPause) return;
224
+ };
225
+
226
+ // 注册新监听器
227
+ _usb.usb.on('attach', attachHandler);
228
+ _usb.usb.on('detach', detachHandler);
225
229
  };
226
230
  var UnregisterAndroidSn = exports.UnregisterAndroidSn = function UnregisterAndroidSn() {
227
231
  isPause = true;
232
+
233
+ // 移除事件监听器
234
+ if (attachHandler) {
235
+ _usb.usb.removeListener('attach', attachHandler);
236
+ attachHandler = null;
237
+ }
238
+ if (detachHandler) {
239
+ _usb.usb.removeListener('detach', detachHandler);
240
+ detachHandler = null;
241
+ }
242
+ hadRegisterUsb = false;
228
243
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hunter-open-sdk",
3
- "version": "2.0.0-beta.3",
3
+ "version": "2.0.0-beta.4",
4
4
  "description": "采货侠SaaS版本桌面端sdk",
5
5
  "scripts": {
6
6
  "start": "zz dev",