v2.5.2
Giriş yap

Döngü işleminden sonra fonksiyon çalıştırma

trsherlock
863 defa görüntülendi

Arkadaşlar aşağıda fatura sorgulama işlemi yaptırıyorum.
İşlem bittikten sonra da oturum kapansın istiyorum.
Fatura sorgulama işleminde bir ayın tamamını sorgulamak için 7 günlük bir parçalama işlemi yapmak gerekiyor.
Parçalama işlemi sorgulama işlemi her şey hazır.
Döngü başlamadan oturum kapatma işlemi yapıldığı için hata alıyorum.
Döngüsü bittikten sonra oturum kapatma fonksiyonunu çalıştırdığım zaman bazen çakışma yaşanabiliyor.

    var request = require("request");
    
    request(tokenOpt, function (error, response, body) {
    if (error) throw new Error(error);
    tokenId = JSON.parse(body).token;
    /* BU DÖNGÜ BİTTİKTEN SONRA OTURUM KAPANMALI */
    for (var key in zaman[ay]) {
        faturaTarihBas = yil + "-" + ay.toString().padStart(2, 0) + "-" + zaman[ay][key][0];
        faturaTarihSon = yil + "-" + ay.toString().padStart(2, 0) + "-" + zaman[ay][key][1];
        jp = {faturaTarihBas: faturaTarihBas,textBox: "",faturaTarihSon: faturaTarihSon}
        let faturaOpt = {
            method: 'POST', url: 'https://ivd.gib.gov.tr/tvd_server/dispatch',
            qs: { cmd: 'EFaturaIslemleri_eFaturaGoruntuleSorgula', callid: callid(), pageName: 'P_EFATURA', token: tokenId, jp: JSON.stringify(jp) },
        };
        setTimeout(function () {
            faturaSorgula(faturaOpt)
        }, 1000 * key);
    }
    /* BU DÖNGÜ BİTTİKTEN SONRA OTURUM KAPANMALI */
});
function faturaSorgula(faturaOpt) {
    request(faturaOpt, function (error, response, body) {
        if (error) throw new Error(error);
        for (var i = 0; i < JSON.parse(body)["data"]["FATURASONUC"].length; i++) {
            console.log(JSON.parse(body)["data"]["FATURASONUC"][i])
        }
    })
};
function oturumKapat(tokenId) {
    var kapatOpt = {
        method: 'POST',url: 'https://ivd.gib.gov.tr/tvd_server/dispatch',
        qs:{ cmd: 'kullaniciBilgileriService_logout', callid: callid(), pageName: 'PG_MAIN_DYNAMIC', token: tokenId, jp: '{}', }
    }
    request(kapatOpt, function (error, response, body) {
        if (error) throw new Error(error);
        console.log(body);
    })
};
trsherlock
1144 gün önce

Aşağıdaki gibi kullanınca çalıştı şimdilik sorun yok gibi :)

    function tokenAl(tokenOpt) {
    request(tokenOpt, function (error, response, body) {
        if (error) throw new Error(error);
        tokenId = JSON.parse(body).token;

        for (let key in zaman[ay]) {
            faturaTarihBas = yil + "-" + ay.toString().padStart(2, 0) + "-" + zaman[ay][key][0];
            faturaTarihSon = yil + "-" + ay.toString().padStart(2, 0) + "-" + zaman[ay][key][1];
            let jp = { faturaTarihBas: faturaTarihBas, textBox: "", faturaTarihSon: faturaTarihSon }

            faturaSorgula(tokenId, jp)
            
            setTimeout(function () {
                if (key == Object.keys(zaman[ay]).length) {
                    oturumKapat(tokenId)
                }

            }, key * 300);
        };
    });
}