Nodejs Promise Pending Hatası

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Hermes
    abdullahazad
    abdullahazad's avatar
    Kayıt Tarihi: 21/Mayıs/2007
    Erkek
    end bunu yazdı
    const TronGrid = require('trongrid');
    const TronWeb = require('tronweb');
    const tronWeb = new TronWeb({
        fullHost: 'https://api.trongrid.io',
        headers: { "TRON-PRO-API-KEY": '********' },
        privateKey: ''
    })
    
    const tronGrid = new TronGrid(tronWeb)
    const fetch = require('node-fetch');
    
    
    // "atesle (async/await [non blocking]) oynuyorsan, lambda icinde olan async bir fonksiyonda oynayacaksin evlat!" -EndMurid
    (async () => {
        let { block_header: { raw_data: { number: last_tron_block } } } = await tronWeb.trx.getCurrentBlock() //solda gordugun muhabbet object destructuring'tir.
        console.log(last_tron_block)
    })()
    

     

    golang ten sonra nodejs tede baya ilerdin kanka haa <3


    az insan çok huzur.
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Arlong
    Arlong's avatar
    Kayıt Tarihi: 14/Şubat/2005
    Erkek
    end bunu yazdı
    const TronGrid = require('trongrid');
    const TronWeb = require('tronweb');
    const tronWeb = new TronWeb({
        fullHost: 'https://api.trongrid.io',
        headers: { "TRON-PRO-API-KEY": '********' },
        privateKey: ''
    })
    
    const tronGrid = new TronGrid(tronWeb)
    const fetch = require('node-fetch');
    
    
    // "atesle (async/await [non blocking]) oynuyorsan, lambda icinde olan async bir fonksiyonda oynayacaksin evlat!" -EndMurid
    (async () => {
        let { block_header: { raw_data: { number: last_tron_block } } } = await tronWeb.trx.getCurrentBlock() //solda gordugun muhabbet object destructuring'tir.
        console.log(last_tron_block)
    })()
    

     

    Async fonksiyonun un dışında kullanamayacak mıyım ben bu değeri? Bundan başka await Async gerektiren durumlar olursa hepsini iç içe mi yazacağım? Normal olan bu mudur nodejs de? 

  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Arlong
    Arlong's avatar
    Kayıt Tarihi: 14/Şubat/2005
    Erkek

    Arkadaşlar durum let, var ve const arasındaki farkları ve javascript tr değişkenlerin durumlarıyla alakalı eksik bilgimden kaynaklanmaktaymış, teşekkür ederim hepinize. Nodejs in tam bir aptal işi olduğunu düşünmeye başlamıştım. 

  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    yolbulucu
    yolbulucu's avatar
    Kayıt Tarihi: 06/Nisan/2007
    Homo
    Arlong bunu yazdı

    Olmuyor ya yapamadım bir türlü ben bu işin mantığını anlayamadım 

    let last_tron_block =tronWeb.trx.getCurrentBlock().then(function(result) {
        result => {
         return   result.block_header.raw_data.number;
      }
    })
    
      console.log(last_tron_block);

    hocam senin o "let last_tron_block" diye baslayan satirin alttaki console.log dan once calisacak gibi anliyosun da oyle degil iste o. .then in olayi sey demek "bunu yap sonrasinda bunu yap" ama o seyi beklemeden alt satira geciyor. bilmem anlatabildim mi. yani sen result u kullanmak istiyosan then in icinde kullanacaksin ya da await diyeceksin end muridin dedigi gibi. youtube dan 3-5 tane async nedir promise nedir konulu video izlemeni oneririm


    29.99cm, titanyum kaplamalı, çift damarlı, su ve yağ soğutmalı.
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Arlong
    Arlong's avatar
    Kayıt Tarihi: 14/Şubat/2005
    Erkek
    yolbulucu bunu yazdı
    Arlong bunu yazdı

    Olmuyor ya yapamadım bir türlü ben bu işin mantığını anlayamadım 

    let last_tron_block =tronWeb.trx.getCurrentBlock().then(function(result) {
        result => {
         return   result.block_header.raw_data.number;
      }
    })
    
      console.log(last_tron_block);

    hocam senin o "let last_tron_block" diye baslayan satirin alttaki console.log dan once calisacak gibi anliyosun da oyle degil iste o. .then in olayi sey demek "bunu yap sonrasinda bunu yap" ama o seyi beklemeden alt satira geciyor. bilmem anlatabildim mi. yani sen result u kullanmak istiyosan then in icinde kullanacaksin ya da await diyeceksin end muridin dedigi gibi. youtube dan 3-5 tane async nedir promise nedir konulu video izlemeni oneririm

    İzleyeceğim hocam eyv

  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    end
    end's avatar
    Kayıt Tarihi: 16/Ekim/2016
    Erkek
    Arlong bunu yazdı

    Arkadaşlar durum let, var ve const arasındaki farkları ve javascriptte değişkenlerin durumlarıyla alakalı eksik bilgimden kaynaklanmaktaymış, teşekkür ederim hepinize. Nodejs in tam bir aptal işi olduğunu düşünmeye başlamıştım. 

    "Gerizekali ibnenin evlatlari neredeyse her seyi nonblocking yapmislar. Ulan ben istersem nonblocking yapayim niye ters takla attiriyorsun bana?" Diyor insan ilk basta, haklisin. Suya biraz daha gir, beline kadar gelsin, iki cip cip yap, varsa cisin tutma, ise, hemencecik isiniyorsun :)))

    javascript'te scope olayi istiyorsan let/const kullanacaksin. var global bisi, scope falan tanimaz. Ama, bu ayri konu. Senin sikintin non blocking yapi ile alakali.

    Async olan main adinda bi fonksiyon yazip onun icinde calis, disarida main fonksiyonunu cagir.

     

    end tarafından 03/Haz/21 08:57 tarihinde düzenlenmiştir

    0x0480 takilin madem ﷽﷽﷽
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek

    Her projenin bir main fonksiyonu olmalı derdi üniversitede saygı değer bir rehberim. Haklı başlangıcı olmayan işin rotası olmazmış.


    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    end
    end's avatar
    Kayıt Tarihi: 16/Ekim/2016
    Erkek
    const express = require('express')
    const NodeCache = require('node-cache');
    //const fetch = require('node-fetch');
    const TronWeb = require('tronweb');
    
    const app = express()
    const tronWeb = new TronWeb({
        fullHost: '',
        headers: { 'TRON-PRO-API-KEY': '' },
        privateKey: ''
    })
    const myCache = new NodeCache();
    const port = 3000
    
    app.set('view engine', 'ejs')
    
    /*
     * bu degisken disarida cunku server ayakta oldugu surece hafizada kalsin istiyoruz ;)
     */
    let last_controlled_tron_block;
    /*
     * 
     */
    app.get('/', async (req, res) => {
        let output = [];
        if (last_controlled_tron_block == null) //tanımsızsa 30730000
            last_controlled_tron_block = 30730000; //kontrolün başlamasını istediğimiz block numarası
    
        let { block_header: { raw_data: { number: last_tron_block } } } = await tronWeb.trx.getCurrentBlock(); //en yeni block numarasını al
    
        // let i = 0;
        // while (last_controlled_tron_block < last_tron_block) { //son kontrol edilen block en yeni blocktan eski ise
        //     let result = await tronWeb.trx.getBlockByNumber(last_controlled_tron_block); //tek tek tüm blockları sırayla al
        //     last_controlled_tron_block = result.block_header.raw_data.number + 1; //alına son bloğu yeni alınan block numarasına göre arttır
        //     myCache.set("last_controlled_tron_block", last_controlled_tron_block); //son blok numarasını cache e ekle
        //     //bence burada cache'e gerek yok. niye? cunku degiskende tutuyorsun zaten... :) eger serveri yeniden baslatmazsan o degisken instance'i duruyor olacak...
        //     // alınan blockların değerleriyle birşeyler yapılacak olan yer burası
        //     i++; if (i > 10) { break; } //rate limite düşmemek için her çalışmada block kontrol et
        // }
        for (let i = 0; i < 10; i++) {
            if (last_controlled_tron_block < last_tron_block) {
                let result = await tronWeb.trx.getBlockByNumber(last_controlled_tron_block); //tek tek tüm blockları sırayla al
                last_controlled_tron_block = result.block_header.raw_data.number + 1; //alına son bloğu yeni alınan block numarasına göre arttır
                myCache.set("last_controlled_tron_block", last_controlled_tron_block); //son blok numarasını cache e ekle
                //bence burada cache'e gerek yok. niye? cunku degiskende tutuyorsun zaten... :) eger serveri yeniden baslatmazsan o degisken instance'i duruyor olacak...
                // alınan blockların değerleriyle birşeyler yapılacak olan yer burası
                output.push(result);
            }
        }
        res.json(output); //bu dongude aldigimiz outputlari json headerlariyla client'a gonderdik.
    })
    
    
    app.listen(port, () => {
        console.log(`${port} listening`);
    })
    
    

    @Arlong selam hocam.

    Mesajina buradan cevap vermek istedim zira mesaj kutusunda indenting kahroluyor :P Bana gonderdigin kodla duzenledigim halini yan yana koy incele bakalim. Aklina takilanlari soruverirsin dilersen.

     

    end tarafından 03/Haz/21 20:09 tarihinde düzenlenmiştir

    0x0480 takilin madem ﷽﷽﷽
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Arlong
    Arlong's avatar
    Kayıt Tarihi: 14/Şubat/2005
    Erkek
    end bunu yazdı
    const express = require('express')
    const NodeCache = require('node-cache');
    //const fetch = require('node-fetch');
    const TronWeb = require('tronweb');
    
    const app = express()
    const tronWeb = new TronWeb({
        fullHost: '',
        headers: { 'TRON-PRO-API-KEY': '' },
        privateKey: ''
    })
    const myCache = new NodeCache();
    const port = 3000
    
    app.set('view engine', 'ejs')
    
    /*
     * bu degisken disarida cunku server ayakta oldugu surece hafizada kalsin istiyoruz ;)
     */
    let last_controlled_tron_block;
    /*
     * 
     */
    app.get('/', async (req, res) => {
        let output = [];
        if (last_controlled_tron_block == null) //tanımsızsa 30730000
            last_controlled_tron_block = 30730000; //kontrolün başlamasını istediğimiz block numarası
    
        let { block_header: { raw_data: { number: last_tron_block } } } = await tronWeb.trx.getCurrentBlock(); //en yeni block numarasını al
    
        // let i = 0;
        // while (last_controlled_tron_block < last_tron_block) { //son kontrol edilen block en yeni blocktan eski ise
        //     let result = await tronWeb.trx.getBlockByNumber(last_controlled_tron_block); //tek tek tüm blockları sırayla al
        //     last_controlled_tron_block = result.block_header.raw_data.number + 1; //alına son bloğu yeni alınan block numarasına göre arttır
        //     myCache.set("last_controlled_tron_block", last_controlled_tron_block); //son blok numarasını cache e ekle
        //     //bence burada cache'e gerek yok. niye? cunku degiskende tutuyorsun zaten... :) eger serveri yeniden baslatmazsan o degisken instance'i duruyor olacak...
        //     // alınan blockların değerleriyle birşeyler yapılacak olan yer burası
        //     i++; if (i > 10) { break; } //rate limite düşmemek için her çalışmada block kontrol et
        // }
        for (let i = 0; i < 10; i++) {
            if (last_controlled_tron_block < last_tron_block) {
                let result = await tronWeb.trx.getBlockByNumber(last_controlled_tron_block); //tek tek tüm blockları sırayla al
                last_controlled_tron_block = result.block_header.raw_data.number + 1; //alına son bloğu yeni alınan block numarasına göre arttır
                myCache.set("last_controlled_tron_block", last_controlled_tron_block); //son blok numarasını cache e ekle
                //bence burada cache'e gerek yok. niye? cunku degiskende tutuyorsun zaten... :) eger serveri yeniden baslatmazsan o degisken instance'i duruyor olacak...
                // alınan blockların değerleriyle birşeyler yapılacak olan yer burası
                output.push(result);
            }
        }
        res.json(output); //bu dongude aldigimiz outputlari json headerlariyla client'a gonderdik.
    })
    
    
    app.listen(port, () => {
        console.log(`${port} listening`);
    })
    
    

    @Arlong selam hocam.

    Mesajina buradan cevap vermek istedim zira mesaj kutusunda indenting kahroluyor :P Bana gonderdigin kodla duzenledigim halini yan yana koy incele bakalim. Aklina takilanlari soruverirsin dilersen.

     

    hocam tıkır tıkır çalışıyor eline sağlık.

    bundan sonrasını ben hallederim artık senin yöntemlerinden faydalanarak. teşekkür ederim çok.

Toplam Hit: 2495 Toplam Mesaj: 20
nodejs tronbwe