Neler yeni

Async

  • Görüntüleme Görüntüleme: 243
  • Son güncelleme Son güncelleme:

Navigasyon

Full Nvme SSD Disk Desteği Sayesinde Çok Daha Hızlı Web Siteleri! 7/24 Destek. Ücretsiz Antispam Koruma. Ücretsiz Domain. Anında Aktivasyon
  • Javascript Async Await Nedir Nasıl Kullanılır?​ (yukarı)

    Asenkron Çalışma Nedir?​ (yukarı)

    Asenkron bir nevi sıralı çalışma diyebiliriz. Bir fonksiyonun çalışması başka bir fonksiyondan gelen bir değere ya da o fonksiyonun başarılı olup olmamasına bağlı çalışması gerekebilir. Örnek vermek gerekirse bir kullanıcıdan şifre kullanıcı adını aldınız daha sonra bunun bilgilerini almak için önce o kullanıcının kullanıcı adı ve şifresi doğru mu gibi bir sorgulama sonrasında kullanıcı bilgilerini almanız gerekmektedir. Bu tarz durumlarda javascript’de promise kullanırız ve async await ile bunu daha anlaşılır bir yapıya bürümüş oluruz.

    Kısaca Promis’i hatırlayalım​ (yukarı)

    Promise söz vermek mânasına gelir ve bir işin bitip bitmediği hususunda kesin bir dönüş yapar. Kullanıcı adı doğruysa resolve yaparız eğer kullanıcı adı şifre doğru değilse reject ile reddederiz. Burada fonksiyonu kullanırken then ve catch ile hata olup olmadığını yakalarız.

    Çok Promise çok söz demektir​ (yukarı)

    Çok fazla işlem sırasından geçmesi gereken bir yapınız varsa 1’den fazla promise kullanırız bu durumlarda then ve catch’leri ayırmak her birinden dönen değerleri bir bakışta anlamak ve diğer promise ile olan bağlantısını kurmak zor olmaktadır.

    Çözüm: await ile bekletmek​ (yukarı)

    Async await yapısı ile try cathc yapısı kullanılır ve her bir fonksiyonun önce bitmesini bekle daha sonra diğerine geç diyebiliriz. Örnek bir kod yapısına bakalım. Bu örneği daha önce anlattığım Javascript Promise yazısında yazmıştım. Şimdi bunu async await ile nasıl düzenleriz ona bakalım.

    Kod:
    async function getResultWithAwait() {
    try {
    const name = document.querySelector("#name").value;
    const nameControl = await checkName(name);
    displayResult.textContent = "Kullanıcı:" + result;
    console.log("İsim doğru: " + result);
    } catch (error) {
    displayResult.textContent = error;
    console.warn("Hata var" + error);
    }
    }

    Burada 2 nokta var. Fonksiyon başındaki async ifadesi. Bununla bu fonksiyonun bir asenkron yapıda olacağını belirtiyoruz. Peki Promise ile kullandığımız then cathc nerede? nameControl adlı değişkende bir ifade görüyoruz. await checkName(name) . Await ile bu fonksiyonun bir promise yapıda olduğu dolayısıyla bir resolve ya da reject olayına sahip olduğunu belirtiyoruz. Eğer checkName adlı fonksiyon resolve olursa resolve ile döndürülen şey nameControl değişkeninin içinde yer almış oluyor.

    Bütün catch’ler tek bir yerde​ (yukarı)

    Peki resolve değil de reject olursa fonksiyonumuz? Burada ise try catch yapısındaki catch bizi karşılıyor. try içerisinde herhangi bir await ile belirlenen fonkiyon reject’e düşerse try orada kesilir ve catch’e düşer. Yani bütün Promise rejectleri try yapısındaki catch’e bağlıdır.
    Async await yapısı gerçekten önemli ve çok kullanılmaktadır. Yorumlar kısmına takıldığınız yerleri yazarsanız yardımcı olmaya çalışırım. Burada mozilla sitesinde açıklamalar mevcut isterseniz bakabilirsiniz.

Tema özelleştirme sistemi

Bu menüden forum temasının bazı alanlarını kendinize özel olarak düzenleye bilirsiniz.

Zevkine göre renk kombinasyonunu belirle

Gece/Gündüz modunu seç

Gece ve gündüz modlarından tarzınıza yada ihtiyaçlarınıza uygun olanı seçerek kullana bilirsiniz.

Tam ekran yada dar ekran

Temanızın gövde büyüklüğünü sevkiniz, ihtiyacınıza göre dar yada geniş olarak kulana bilirsiniz.

Izgara yada normal mod

Temanızda forum listeleme yapısını ızgara yapısında yada normal yapıda listemek için kullanabilirsiniz.

Forum arkaplan resimleri

Forum arkaplanlarına eklenmiş olan resimlerinin kontrolü senin elinde, resimleri aç/kapat

Sidebar blogunu kapat/aç

Forumun kalabalığında kurtulmak için sidebar (kenar çubuğunu) açıp/kapatarak gereksiz kalabalıklardan kurtula bilirsiniz.

Yapışkan sidebar kapat/aç

Yapışkan sidebar ile sidebar alanını daha hızlı ve verimli kullanabilirsiniz.

Radius aç/kapat

Blok köşelerinde bulunan kıvrımları kapat/aç bu şekilde tarzını yansıt.