Skip to content
This repository was archived by the owner on Dec 2, 2024. It is now read-only.

Commit 0cef765

Browse files
authored
Use nextTick of abstract-leveldown (#195)
1 parent 085ffe9 commit 0cef765

6 files changed

Lines changed: 13 additions & 44 deletions

File tree

index.js

Lines changed: 8 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ var inherits = require('inherits')
99
var Iterator = require('./iterator')
1010
var serialize = require('./util/serialize')
1111
var deserialize = require('./util/deserialize')
12-
var setImmediate = require('./util/immediate')
1312
var support = require('./util/support')
1413
var clear = require('./util/clear')
1514
var createKeyRange = require('./util/key-range')
@@ -88,9 +87,7 @@ Level.prototype._get = function (key, options, callback) {
8887
try {
8988
var req = store.get(key)
9089
} catch (err) {
91-
return setImmediate(function () {
92-
callback(err)
93-
})
90+
return this._nextTick(callback, err)
9491
}
9592

9693
this.await(req, function (err, value) {
@@ -111,9 +108,7 @@ Level.prototype._del = function (key, options, callback) {
111108
try {
112109
var req = store.delete(key)
113110
} catch (err) {
114-
return setImmediate(function () {
115-
callback(err)
116-
})
111+
return this._nextTick(callback, err)
117112
}
118113

119114
this.await(req, callback)
@@ -127,9 +122,7 @@ Level.prototype._put = function (key, value, options, callback) {
127122
// does not support serializing the key or value respectively.
128123
var req = store.put(value, key)
129124
} catch (err) {
130-
return setImmediate(function () {
131-
callback(err)
132-
})
125+
return this._nextTick(callback, err)
133126
}
134127

135128
this.await(req, callback)
@@ -148,7 +141,7 @@ Level.prototype._iterator = function (options) {
148141
}
149142

150143
Level.prototype._batch = function (operations, options, callback) {
151-
if (operations.length === 0) return setImmediate(callback)
144+
if (operations.length === 0) return this._nextTick(callback)
152145

153146
var store = this.store('readwrite')
154147
var transaction = store.transaction
@@ -190,7 +183,7 @@ Level.prototype._clear = function (options, callback) {
190183
} catch (e) {
191184
// The lower key is greater than the upper key.
192185
// IndexedDB throws an error, but we'll just do nothing.
193-
return setImmediate(callback)
186+
return this._nextTick(callback)
194187
}
195188

196189
if (options.limit >= 0) {
@@ -203,25 +196,21 @@ Level.prototype._clear = function (options, callback) {
203196
var store = this.store('readwrite')
204197
var req = keyRange ? store.delete(keyRange) : store.clear()
205198
} catch (err) {
206-
return setImmediate(function () {
207-
callback(err)
208-
})
199+
return this._nextTick(callback, err)
209200
}
210201

211202
this.await(req, callback)
212203
}
213204

214205
Level.prototype._close = function (callback) {
215206
this.db.close()
216-
setImmediate(callback)
207+
this._nextTick(callback)
217208
}
218209

219210
// NOTE: remove in a next major release
220211
Level.prototype.upgrade = function (callback) {
221212
if (this.status !== 'open') {
222-
return setImmediate(function () {
223-
callback(new Error('cannot upgrade() before open()'))
224-
})
213+
return this._nextTick(callback, new Error('cannot upgrade() before open()'))
225214
}
226215

227216
var it = this.iterator()

iterator.js

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ var inherits = require('inherits')
44
var AbstractIterator = require('abstract-leveldown').AbstractIterator
55
var createKeyRange = require('./util/key-range')
66
var deserialize = require('./util/deserialize')
7-
var setImmediate = require('./util/immediate')
87
var noop = function () {}
98

109
module.exports = Iterator
@@ -101,10 +100,7 @@ Iterator.prototype._next = function (callback) {
101100
// The error should be picked up by either next() or end().
102101
var err = this._error
103102
this._error = null
104-
105-
setImmediate(function () {
106-
callback(err)
107-
})
103+
this._nextTick(callback, err)
108104
} else if (this._cache.length > 0) {
109105
var key = this._cache.shift()
110106
var value = this._cache.shift()
@@ -121,11 +117,9 @@ Iterator.prototype._next = function (callback) {
121117
value = undefined
122118
}
123119

124-
setImmediate(function () {
125-
callback(null, key, value)
126-
})
120+
this._nextTick(callback, null, key, value)
127121
} else if (this._completed) {
128-
setImmediate(callback)
122+
this._nextTick(callback)
129123
} else {
130124
this._callback = callback
131125
}
@@ -137,13 +131,7 @@ Iterator.prototype._deserializeValue = deserialize
137131

138132
Iterator.prototype._end = function (callback) {
139133
if (this._aborted || this._completed) {
140-
var err = this._error
141-
142-
setImmediate(function () {
143-
callback(err)
144-
})
145-
146-
return
134+
return this._nextTick(callback, this._error)
147135
}
148136

149137
// Don't advance the cursor anymore, and the transaction will complete

package.json

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,9 @@
2222
"UPGRADING.md",
2323
"sauce-labs.svg"
2424
],
25-
"browser": {
26-
"./util/immediate.js": "./util/immediate-browser.js"
27-
},
2825
"dependencies": {
2926
"abstract-leveldown": "~6.2.3",
3027
"buffer": "^5.5.0",
31-
"immediate": "~3.2.3",
3228
"inherits": "^2.0.3",
3329
"ltgt": "^2.1.2"
3430
},

util/clear.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
'use strict'
22

3-
var setImmediate = require('./immediate')
4-
53
module.exports = function clear (db, location, keyRange, options, callback) {
6-
if (options.limit === 0) return setImmediate(callback)
4+
if (options.limit === 0) return db._nextTick(callback)
75

86
var transaction = db.db.transaction([location], 'readwrite')
97
var store = transaction.objectStore(location)

util/immediate-browser.js

Lines changed: 0 additions & 1 deletion
This file was deleted.

util/immediate.js

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)