Я ищу способ сделать несколько упорядоченных массивов в порядке их выполнения. Я не знаю, есть ли другой способ вместо массового использования, но моя цель состоит в том, чтобы сделать некоторые операции записи по порядку, и я не могу найти какие-либо документы по этому поводу.
Основная проблема заключается в том, что я не могу создать один заказанный объем для всех них, так как Я получаю один запрос на запись за раз .
На самом деле я создаю writeQueue
где я отправляю sh новые запросы на запись и обрабатываю их один за другим:
var bulkQueue = []
var executing = false
function insertPacket(packet, cb) {
var criteria = { topic: packet.topic }
var bulk = this._cl.retained.initializeOrderedBulkOp()
if (packet.payload.length > 0) {
bulk.find(criteria).upsert().updateOne(decoratePacket(packet, this._opts))
} else {
bulk.find(criteria).deleteOne()
}
enqueueBulk(bulk, cb)
}
function enqueueBulk (bulk, cb) {
bulkQueue.unshift({ bulk, cb })
if (!executing) {
executing = true
doNext()
}
}
function doNext () {
if (bulkQueue.length > 0) {
var op = bulkQueue.pop()
op.bulk.execute(function () {
op.cb()
doNext()
})
} else executing = false
}