jeudi 6 août 2015

Uncaught RefferenceError of global array in javascript

I have script in A.js like this:

function sinkronMyDB(){
    sinkronDB();
    var u_name = window.localStorage.getItem('uname');
    if(dataSync.length !== 0){ // <-- line 4
        var dataSinkronItems = [];
        for (var i = 0; i<dataSync.length; i++) {
            dataSinkronItems[i] = dataSync[i];
            console.log('dataSync('+i+') = '+dataSync[i]);
        };
        $.ajax({
            url:'http://ift.tt/1eUzQtE',
            data: {data : dataSinkronItems, username: u_name}, 
            type:'post',
            async:'false',
            dataType: 'json',
            beforeSend:function(){
                $.mobile.loading('show',{theme:"a",text:"Update...",textonly:true,textVisible:true});
            },
            complete:function(){
                $.mobile.loading('hide');
            },
            success:function(result){
                if (result.status===true) {
                    dataBaru = [];
                    idBaru = [];
                    for (i=0; i<dataBaru.length; i++){
                        dataBaru[i] = result.dataBaru[i];
                        idBaru[i] = result.id[i];
                    }
                    sinkronUpd();
                    console.log('Database update success.');
                } else{
                    console.log('Tidak ada pengiriman baru.');
                }
            },
            error:function(request,error){
                alert('Koneksi error. Silahkan coba beberapa saat lagi!');
            }
        });
    }else alert('Belum ada barang yang terkirim');
}

function sinkronDB() is in another Script file. lets call it B.js. the script content is like this:

function sinkronDB(){
    db.transaction(sinkronQuery,errorCB);
}

function sinkronQuery(tx){
    tx.executeSql("SELECT * FROM data_pengiriman WHERE Status = 'Terkirim'",[],successSelect);
}

function successSelect(tx,result){
    var len = result.rows.length;
    dataSync = [];
    for (var i=0; i<len; i++){
        dataSync[i] = result.rows.item(i).id_pengiriman;
        console.log('dataSync['+i+'] = '+dataSync[i]);
    }
}

In console log it's say error:

Uncaught ReferenceError: dataSync is not defined at file A.js line 4.

I tried check it with jshint and no error. Can anyone help me solve it, please!

Aucun commentaire:

Enregistrer un commentaire