• 02-01-2019, 11:34:07
    #1
    Merhaba, bir fonksşyonla veritabanından veri çekiyorum ve çektiğim veriyi de global olarak kullanmak istiyorum. bu mümkün müdür acaba?
  • 02-01-2019, 11:40:20
    #2
    global diye objenin içine istediğiniz gibi tanımlayabilirsiniz.

    global.degiskenAdi = "Değişken içeriği";
  • 02-01-2019, 11:44:05
    #3
    yhs adlı üyeden alıntı: mesajı görüntüle
    global diye objenin içine istediğiniz gibi tanımlayabilirsiniz.

    global.degiskenAdi = "Değişken içeriği";

    ilginiz için teşekkür ederim, global olarak tanımlamak istediğim veri bir fonksiyonun içinde...



    function getNumbers(callback) {
        result = cio.query("SELECT numbers FROM rooms WHERE durum='1'", function (err, result) {
            if (err) throw err;
            callback((result.length > 0) ? result[0].numbers : "");
        });
    }
    
    var ko;
    
    getNumbers(function (result) {
      ko = result;
      console.log(result);
    });
    var zo = [ko]; //undefined "tanımsız" olarak geri dönüyor....
    zo değişkeni için veri alamıyorum...
  • 02-01-2019, 11:48:44
    #4
    Bemica adlı üyeden alıntı: mesajı görüntüle
    ilginiz için teşekkür ederim, global olarak tanımlamak istediğim veri bir fonksiyonun içinde...



    function getNumbers(callback) {
        result = cio.query("SELECT numbers FROM rooms WHERE durum='1'", function (err, result) {
            if (err) throw err;
            callback((result.length > 0) ? result[0].numbers : "");
        });
    }
    
    var ko;
    
    getNumbers(function (result) {
      ko = result;
      console.log(result);
    });
    var zo = [ko]; //undefined "tanımsız" olarak geri dönüyor....
    zo değişkeni için veri alamıyorum...
    Bu şekilde deneyin.
    function getNumbers(callback) {
        result = cio.query("SELECT numbers FROM rooms WHERE durum='1'", function (err, result) {
            if (err) throw err;
            callback((result.length > 0) ? result[0].numbers : "");
        });
    }
    
    var ko;
    
    getNumbers(function (result) {
      global.ko = result;
      console.log(result);
    });
    var zo = global.ko;
  • 02-01-2019, 11:51:28
    #5
    function getNumbers(callback) {
        result = cio.query("SELECT numbers FROM rooms WHERE durum='1'", function (err, result) {
            if (err) throw err;
            callback((result.length > 0) ? result[0].numbers : "");
        });
    }
     
    var ko;
     
    getNumbers(function (result) {
      global.ko = result;
      console.log(result);
    });
    var zo = global.ko;
    console.log(zo);
    tanımsız olarak geri dönüyor ve ben nerede hata yapıyorum bilmiyorum...
  • 02-01-2019, 11:54:10
    #6
    Kimlik doğrulama veya yönetimden onay bekliyor.
    önce var global.ko = []; (tabi bunu üst hiyerarşide yapmanız lazım)
    yazıp ardından global.ko = result; yazmayı deneyin.
  • 02-01-2019, 11:56:43
    #7
    Bemica adlı üyeden alıntı: mesajı görüntüle
    function getNumbers(callback) {
        result = cio.query("SELECT numbers FROM rooms WHERE durum='1'", function (err, result) {
            if (err) throw err;
            callback((result.length > 0) ? result[0].numbers : "");
        });
    }
     
    var ko;
     
    getNumbers(function (result) {
      global.ko = result;
      console.log(result);
    });
    var zo = global.ko;
    console.log(zo);
    tanımsız olarak geri dönüyor ve ben nerede hata yapıyorum bilmiyorum...
    olmamasının sebebi thread ayrılması. Method daha işlemini bitirmeden sonucunu öğrenmeye çalışıyorsun. Yani sen getNumbers methodunu çalıştırırdıktan sonra global.ko değişkenini zo ya tanımlıyorsun ama daha global.ko değişkeni tanımlanmamış oluyor. Callbackden cevap geldikten sonra tanımlanıyor. Umarım anlatabilmişimdir
  • 02-01-2019, 12:02:29
    #8
    @Cappystarj0e ilginiz için teşekkürler, tanımsız olarak geri dönüyor...



    @yhs

    Alıntı
    olmamasının sebebi thread ayrılması. Method daha işlemini bitirmeden sonucunu öğrenmeye çalışıyorsun.
    hocam tam olarak anlayamadım,

    console.log(result);// -> tanımlı ve veriyi alıyorum
    fakat.
    console.log(zo)// -> tanımsız olarak geri dönüyor
    , senkronize hatası mı var? eğer varsa bunu nasıl aşabilirim.
  • 02-01-2019, 12:11:30
    #9
    getNumbers(async function (result) {
    global.ko = await result;
    console.log(result);
    });

    bunu bir dener misiniz?