Axios в обратном вызове асинхронного водопада уже назывался - PullRequest
0 голосов
/ 11 февраля 2019

Я попытался создать 2 функции, используя асинхронный водопад, который использовал асинхронный, обычно это работает, но в этом случае я попытался объединить с Axios, это происходит

(node:1512) UnhandledPromiseRejectionWarning: Error: Callback was already called.

функция, которую я использовал, похожа на эту

function postdata1(links, value, header = {}, callback1) {

    var data = mydata
    async.waterfall([
        function (callback2) {
            axios.post(links, data, {
                headers: header
            }).then(function (response) {
                // handle success
                //console.log(response);
                if (response.status === 200) {
                    callback2(response.status, response.data)
                    return;
                } else if (response.status === 500 || response.status === 404) {
                    callback2(response.status, response.data)
                    return;
                }

            }).catch(function (error) {
                // handle error
                callback2(error, null);  --> the error come from here
                return;
            })
        }, function (arg1, callback) {
            Flagging(value.ID, (err, result) => {                    
                if (err) {
                    callback(err, null)
                } else {
                    callback(null, arg1);    
                }    
            })

        }
    ], function (err, result) {
        if (err) {
            callback1(err,null);   
        }
        else{
            callback1(null,result);
        }
    });
}

Я проверял несколько раз, но я думаю, что в этой функции нет цикла, я совершенно новичок в использовании node.js и никогда раньше не использовал Axios, что Axios делает какой-то цикл в catch?или любое решение сделать 2 асинхронных продукта, один вызов внешнего API и один - обновление БД.

Функция пометки - обновить запрос к моей базе данных

...