У меня сложная ситуация, когда необходимо собрать ключи, принадлежащие к определенным типам (типам в данном массиве), затем отфильтровать собранные ключи и перейти к функции удаления.
Процесс сбора вызывает шелл-коды и обрабатывает результаты в обратном вызове внутри цикла. Мне нужно будет подождать, пока завершится весь цикл обратного вызова, а затем перейти к функции удаления.
Я использую shelljs в кодах узлов, в основном это выглядит так:
var del_arr = [];
for (var i in types) {
shell.exec(somecode with
var [i], {
silent: true
},
function(code, stdout, stderr) {
somecode-processing/filtering stdout and pushes the results to del_arr;
});
//loop through array types[] and need to wait for all shell codes' callbacks to finish;
}
//then pass del_arr to deletion function
Мне не удалось создать асинхронную функцию в этом формате с помощью обратного вызова shelljs. Я также не знаю, как использовать обещание в этой ситуации.
Можете ли вы сказать мне, как добиться этого неблокирующего процесса?
Спасибо