diff --git a/lib/client.js b/lib/client.js index 774384f79..08fc443a1 100644 --- a/lib/client.js +++ b/lib/client.js @@ -12,9 +12,10 @@ var reInterval = require('reinterval') var validations = require('./validations') var xtend = require('xtend') var debug = require('debug')('mqttjs:client') +var nextTick = process ? process.nextTick : function (callback) { setTimeout(callback, 0) } var setImmediate = global.setImmediate || function (callback) { // works in node v0.8 - process.nextTick(callback) + nextTick(callback) } var defaultConnectOptions = { keepalive: 60, @@ -303,7 +304,7 @@ MqttClient.prototype._setupStream = function () { function nextTickWork () { if (packets.length) { - process.nextTick(work) + nextTick(work) } else { var done = completeParse completeParse = null @@ -838,8 +839,8 @@ MqttClient.prototype.end = function (force, opts, cb) { debug('end :: (%s) :: finish :: calling _cleanUp with force %s', that.options.clientId, force) that._cleanUp(force, () => { debug('end :: finish :: calling process.nextTick on closeStores') - // var boundProcess = process.nextTick.bind(null, closeStores) - process.nextTick(closeStores.bind(that)) + // var boundProcess = nextTick.bind(null, closeStores) + nextTick(closeStores.bind(that)) }, opts) } diff --git a/lib/connect/wx.js b/lib/connect/wx.js index 4cb32454c..b9c7a0705 100644 --- a/lib/connect/wx.js +++ b/lib/connect/wx.js @@ -117,13 +117,13 @@ function buildStream (client, opts) { stream.destroy = destroyRef var self = this - process.nextTick(function () { + setTimeout(function () { socketTask.close({ fail: function () { self._destroy(new Error()) } }) - }) + }, 0) }.bind(stream) bindEventHandler() diff --git a/lib/store.js b/lib/store.js index 97aef436e..5e3a8dc78 100644 --- a/lib/store.js +++ b/lib/store.js @@ -88,9 +88,9 @@ Store.prototype.createStream = function () { destroyed = true - process.nextTick(function () { + setTimeout(function () { self.emit('close') - }) + }, 0) } return stream