При связывании обещаний в Javascript, что произойдет, если одна функция в середине цепочки ничего не возвращает, но все же выполняет асинхронную операцию, которую необходимо выполнить перед продолжением?
Делает ли следующий 'then () 'дождаться разрешения предыдущей асинхронной функции, даже если ей не переданы никакие значения?
EDIT: вот пример приложения:
connectDatabase()
.then(() => createTables())
.then(() => fillTables())
.then(() => selectTables)
.then(tables => showTables());
ThisКод просто представляет создание базы данных SQLite и некоторые дальнейшие операции для окончательного отображения значений таблицы.
connectDatabase()
- это асинхронная функция.После создания базы данных функции не нужно ничего возвращать, поскольку база данных хранится в некоторой глобальной функции (для использования вне цепочки обещаний).Следующему шагу не нужны никакие аргументы, хотя для вставки в него таблиц необходимо создать базу данных.
Функция createTables()
создает несколько таблиц асинхронно, а по завершении ничего не возвращает и следующая функцияможно вызвать.
selectTables()
просто использует команду sql SELECT
для хранения значений таблицы в переменной и возвращает ее следующей функции.
showTables()
использует значения таблицыэто передается ему и отображается на экране.