Все, что вы описали, это синхронный код, который не очень долго запускается. Во-первых, нет причин даже использовать обещания для такого типа кода. Во-вторых, нет причин разбивать его на куски. Все, что вы будете делать с любым из этих вариантов, это сделать код более сложным для написания, более сложным для тестирования и более сложным для понимания, и он также будет работать медленнее. Все это нежелательно.
Если вы заставляете даже синхронный код в обещание, то обработчик .then()
даст возможность некоторому другому коду работать между обработчиками .then()
, но только определенные типы событий могут запускать там, потому что обработка разрешенного обещания является одной из самых приоритетных задач в системе очереди событий. Например, он не разрешит запуск другого входящего http-запроса, поступающего на ваш сервер.
Если вы действительно хотите разрешить выполнение других запросов и т. Д., Было бы лучше просто поместить код (без обещаний) в WorkerThread и позволить ему запускаться там, а затем сообщать результат с помощью обмена сообщениями. Если вы хотите сохранить его в главном потоке, но разрешить запуск любого другого кода, вам, вероятно, придется использовать небольшую задержку setTimeout()
, чтобы действительно позволить всем возможным другим типам задач выполняться между ними.
Таким образом, если запуск этого кода не займет много времени, просто нет причин возиться с усложнением. Просто позвольте ему работать самым быстрым, быстрым и простым способом.
Если вам нужен более конкретный совет, тогда, пожалуйста, покажите некоторый реальный код и предоставьте некоторую информацию о времени, сколько потребуется времени для запуска. Итерация по массиву из 20-30 объектов не является ничем в общей схеме вещей и не является причиной для перезаписи его на куски, разделенные по времени.
Что касается кода, который перебирает массив / список элементов, выполняющих сопоставление с некоторая строка, это именно то, что инфраструктура веб-сервера Express делает для каждого входящего URL, чтобы найти подходящие маршруты. Это не медленная вещь в Javascript.