Как перебрать весь массив перед обратным вызовом на nodejs? - PullRequest
0 голосов
/ 12 апреля 2019

Я пытаюсь перебрать весь массив перед обратным вызовом.Я новичок в nodejs и до сих пор понимаю, как использовать концепцию обратного вызова.

Наткнулся на async.eachSeries / mapSeries / waterfall, и я пробую разные комбинации, но ни одна из них не работает.

Я бы хотел убедиться, что вызовы задач в массиве водопадов выполняются для обоих массивов в каждом ряду (myExchanges и signalso) перед обратным вызовом.

async.eachSeries(myExchanges, function (exchange, outerCB){         
        async.eachSeries(signalso, function(signal,innerCB){                                
            let thisExchangeBuckets = Object.values(custCurrBalance).filter(bal=> bal.exchange===exchange.id)
            var tasko = [async.apply(sigo, signal,exchange, thisExchangeBuckets),availableBalancesC, availableSymbolsC, executeOrders]  
            const response =  async.waterfall(tasko, (err, results) => {
                thisOrders.push(results)                                
                var json = JSON.stringify(thisOrders,null,2);
                fs.writeFileSync(newBalFilePath,json);                  
            })
            innerCB(null);
        },
        function(err) 
        {
            outerCB(null);  // outer callback
        });
    },
    function(err) 
    {
        console.log('all done!!!');
    });
    processAllCB(thisOrders);
  1. результаты в doAll не определены (это происходит из вызванной функции)
  2. все готово !!!(эта строка взята из последней строки кода, представленной выше)
  3. ЗДЕСЬ Я получаю выполнение функций на водопаде

Я ожидаю

  1. функцийводопад
  2. все готово !!!
  3. результаты в doAll [массив размещенных ордеров]
...