Node JS de global değişken kullanmak
9
●579
- 02-01-2019, 11:44:05yhs 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... - 02-01-2019, 11:48:44Bu şekilde deneyin.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; - 02-01-2019, 11:51:28
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:10Kimlik 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:43olmaması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şimdirBemica adlı üyeden alıntı: mesajı görüntüle
- 02-01-2019, 12:02:29@Cappystarj0e ilginiz için teşekkürler, tanımsız olarak geri dönüyor...
@yhs
hocam tam olarak anlayamadım,Alıntı
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:30getNumbers(async function (result) {
global.ko = await result;
console.log(result);
});
bunu bir dener misiniz?