Açıkçası önerdiğim yok, MDN ve W3C fazlasıyla işimi görüyor. Kod örneklerini tek bir Github repo'sundan önermek çok akıllıca olmaz çünkü tek bir konsept için birden fazla kaynakta kod örneği taramak daha mantıklı.Şu an fetch çalışıyorum. Eğer anlamadığım yer olursa Stack Overflow'ya da mdn gibi yerlerden çözüm bulmaya çalışıyorum. W3 çok güzel yer cidden.
Kod örneklerine bakabileceğim yerler vardı illaki ama sizin de önerdiğiniz GitHub sayfları falan var mı varsa nelerdir?
Kaçamak yol olarak hissetmenize gerek yok, her şeyi tam anlamıyla bilmemizin mümkünatı yok zaten. Gerçek dil öğrenir gibi düşünebilirsiniz.Ayrıyeten reduce gibi metodları ben copy pase yapınca sanki kaçamak yoldan gitmiş hissi yaşıyorum.
Bir de böyle konularda mesela bir konunun küçük bir Trick'ini görüyorum ve ben bunu nasıl bilmem diyorum.
Açıkçası önerdiğim yok, MDN ve W3C fazlasıyla işimi görüyor. Kod örneklerini tek bir GitHub Repo'sundan önermek çok akıllıca olmaz çünkü tek bir konsept için birden fazla kaynakta kod örneği taramak daha mantıklı.
Kaçamak yol olarak hissetmenize gerek yok, her şeyi tam anlamıyla bilmemizin mümkünatı yok zaten. Gerçek dil öğrenir gibi düşünebilirsiniz.
Evet hocam mantık bu. Zaman alan işlemlerde veriyi alana kadar beklememize olanak sağlıyor. Mesela fonksiyon içinde hiç reject yoksa direkt veriyi ekrana yazdırmak için@oynozan Hocam bir sorum var
Bu Callback'lerde şöyle bir mantık kurmak doğru mu?
Mesela bir tane hava durumu API yapıyouz. Kullanıcı bir şehir yazdı. Tıkladığı anda JSON verilerinin içinde arama yapıyor.
Burada eğer sonuç Resolve ise hava durumu bilgilerini gösterir. Reject ise hata mesajı çıkar.
Ana mantık bu mu?
console.log(await promise) de yazabilirdiniz. Tabi bunu yapmak için async kapsamında olan bir fonksiyon içerisinde olmanız lazım. En basitinden şu şekilde olabilir:(async () => {
console.log(await promise());
})()
Evet hocam mantık bu. Zaman alan işlemlerde veriyi alana kadar beklememize olanak sağlıyor. Mesela fonksiyon içinde hiç reject yoksa direkt veriyi ekrana yazdırmak içinconsole.log(await promise)de yazabilirdiniz. Tabii bunu yapmak için async kapsamında olan bir fonksiyon içerisinde olmanız lazım. En basitinden şu şekilde olabilir:
JavaScript:(async () => { console.log(await promise()); })()
Node.js, Express.js ve veritabanlarıyla projeler yapmaya başladığınızda çok kullanacaksınız hocam. Örneğin veritabanından kullanıcı verisi çekmemiz gerekiyor, bunun için sunucuya HTTP request gönderiyoruz. HTTP request'in ulaştığı sunucuda istenen veritabanı değerini almak veya işlemini yapmak doğal olarak zaman alacaktır. Sunucudan cevap gelene kadar beklerken Promise yapısından yararlanıyoruz. Veya başka bir örnek, illa sunucunun sahibi biz olmak zorunda değiliz, kendi yazmadığımız bir sunucunun API endpoint'ine ulaşmak için yine aynı yapıyı kullanmak zorundayız.Biraz karışık hocam. Şu an sitedeki JSON verilerini çekip then ile biraz oynama yapıyorum.
Peki hocam kullanım yerlerine örnek verebilir misiniz?
Node.js, Express.js ve veritabanlarıyla projeler yapmaya başladığınızda çok kullanacaksınız hocam. Örneğin veritabanından kullanıcı verisi çekmemiz gerekiyor, bunun için sunucuya HTTP request gönderiyoruz. HTTP request'in ulaştığı sunucuda istenen veritabanı değerini almak veya işlemini yapmak doğal olarak zaman alacaktır. Sunucudan cevap gelene kadar beklerken Promise yapısından yararlanıyoruz. Veya başka bir örnek, illa sunucunun sahibi biz olmak zorunda değiliz, kendi yazmadığımız bir sunucunun API endpoint'ine ulaşmak için yine aynı yapıyı kullanmak zorundayız.
Önceden yazdığım bir projenin örnek kodu: pokedex/src/components/PokemonList.js at main · oynozan/pokedex
Çalışmaz hocam. setInterval asenkron bir fonksiyon. Şu şekilde olmalı:
async function foo() {
return new Promise((resolve, reject) => {
setTimeout(() => resolve("1st message"), 2000);
});
}
async function bar() {
await console.log(foo());
console.log("2nd message");
}
Çalışmaz hocam. SetInterval asenkron bir fonksiyon. Şu şekilde olmalı:
JavaScript:async function foo() { return new Promise((resolve, reject) => { setTimeout(() => resolve("1st message"), 2000); }); } async function bar() { await console.log(foo()); console.log("2nd message"); }
Benim hatam ya,Biraz fazla karışık cidden
@oynozan
5 sanıye beklemesini istedim ama beklemedi.
Eki Görüntüle 1834601
console.log(await foo()) olmalı, Editör olmadan kafam bu kadar çalışıyor işte async function foo() {
return new Promise((resolve, reject) => {
setTimeout(() => resolve("2nd message"), 4000);
});
}
async function bar() {
console.log("1st message")
console.log(await foo());
console.log("3rd message");
}
bar()