Вы можете использовать асинхронный модуль. Его автоматическая функция потрясающая. Если у вас есть функция A () и функция B () и функция C (). Обе функции B () и C () зависят от функции A (), которая использует возвращаемое значение из функции A (). используя функцию асинхронного модуля, вы можете быть уверены, что функции B и C будут выполняться только после завершения выполнения функции A.
Ссылка: https://github.com/caolan/async
async.auto({
A: functionA(){//code here },
B: ['A',functionB(){//code here }],
C: ['A',functionC(){//code here }],
D: [ 'B','C',functionD(){//code here }]
}, function (err, results) {
//results is an array that contains the results of all the function defined and executed by async module
// if there is an error executing any of the function defined in the async then error will be sent to err and as soon as err will be produced execution of other function will be terminated
}
})
});
В приведенном выше примере functionB и functionC будут выполняться вместе, как только выполнение функции A будет завершено. Таким образом, functionB и functionC будут выполняться одновременно
functionB: ['A',functionB(){//code here }]
В приведенной выше строке мы передаем значение, возвращаемое функцией A, используя 'A'
и functionD будут выполняться только тогда, когда будет завершено выполнение functionB и functionC.
если в какой-либо функции возникнет ошибка, то выполнение другой функции будет прекращено и будет выполнена функция ниже. Где вы могли бы написать свою логику успеха и неудачи.
function (err, results) {}
При успешном выполнении всех функций «results» будет содержать результат всех функций, определенных в async.auto
function (err, results) {}