Kotlin Multiplatform Academy · Oppitunti

Kaikkialla toimivat suspend-funktiot

Kirjoita monialustaisesti turvallista asynkronista logiikkaa korutiineilla

Oppitunti 1/413 vaihetta

Kaikkialla toimivat suspend-funktiot on ilmainen Kotlin Multiplatform Academy-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Kotlin Multiplatform Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Kotlin Multiplatform Academy-kurssilla on yhteensä 4 oppituntia.

Asynkroninen logiikka kirjoitetaan kerran

Verkkokutsut ja levyluvut vievät aikaa, joten niiden on oltava asynkronisia. coroutines-rutiinien avulla kirjoitatte asynkronisen logiikan kerran ja molemmat sovellukset voivat käyttää sitä uudelleen. 🚀

Mitä suspend tarkoittaa

suspend-funktio voi keskeytyä ja jatkaa suoritusta estämättä säiettä. Se näyttää tavalliselta peräkkäiseltä koodilta, mutta ei koskaan jäädytä käyttöliittymää.

suspend fun loadUser(): User

Peräkkäinen, ei estävä

suspend-funktion sisällä kutsutte muita suspend-funktioita tavallisessa järjestyksessä. Kukin niistä voi keskeytyä, mutta seuraava rivi suoritetaan vasta, kun tulos on ready.

val user = loadUser()
val posts = loadPosts(user.id)

Se sijaitsee commonMainissa

Täsmälleen sama suspend-funktio käännetään Androidille ja iOS:lle. Sijoittakaa se commonMain-lähdekoodiin, jolloin kumpikaan alusta ei tarvitse omaa kopiota.

suspend fun fetchScore(): Int = api.getScore()

Kutsuminen vaatii coroutine-rutiinin

Suspend-funktiota ei voi kutsua tavallisesta koodista. Sen on suorituttava coroutine-rutiinissa, jonka käynnistää scope tai toinen suspend-funktio.

Suspend kutsuu suspendia

Yksinkertaisin paikka kutsua suspend-funktiota on toinen suspend-funktio. Ne ketjuuntuvat ja muodostavat pienistä osista suurempia jaettuja asynkronisia työnkulkuja.

suspend fun refresh() {
    val data = loadUser()
}

Koodissanne ei ole säikeitä

Teidän ei tarvitse käynnistää säiettä itse. Coroutine-rutiinit ajoittavat työn puolestanne, minkä ansiosta sama koodi on turvallinen sekä iOS:ssä että Androidissa.

Palautusarvot tuntuvat tavallisilta

Suspend-funktio palauttaa arvon aivan kuten mikä tahansa funktio. Sisäkkäisiä callback-kutsuja ei tarvita, joten jaettu logiikka pysyy selkeänä ja helposti read-muodossa.

suspend fun total(): Int =
    loadCart().sumOf { it.price }

Poikkeukset etenevät luontevasti

Kun suspend-kutsu epäonnistuu, se heittää poikkeuksen, jonka voitte käsitellä ympäröimällä kutsun try/catch-rakenteella. Virheenkäsittely näyttää tavalliselta synkroniselta koodilta.

try { loadUser() } catch (e: Exception) { }

Jaettu asynkroninen rakennuspalikka

Käsitelkää jokaista suspend-funktiota uudelleenkäytettävänä työyksikkönä. Koostakaa ne jaetussa koodissa, ja molemmat käyttöliittymät voivat yksinkertaisesti await-odottaa samaa logiikkaa.

Miksi tällä on merkitystä KMP:ssä

Koska suspend-funktiot ovat puhdasta Kotlinia, asynkroninen liiketoimintalogiikkanne ei eriydy alustoittain. Kirjoittakaa vaikea osa kerran ja jakakaa se everywhere. 🎯

Pikatarkistus

Tarkistetaan suspend-funktioita koskeva keskeinen ajatus.

Kertaus

Opitte, että suspend-funktioilla asynkroninen logiikka kirjoitetaan kerran: ne keskeytyvät estämättä suoritusta, näyttävät peräkkäiseltä koodilta ja kääntyvät kaikille KMP-kohteille. 🎉

Aloita maksutta

Opi Kotlin tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
30
Oppitunnit
120

Usein kysytyt kysymykset

Onko oppitunti ”Kaikkialla toimivat suspend-funktiot” ilmainen?

Kyllä – oppitunnin ”Kaikkialla toimivat suspend-funktiot” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Kotlin Multiplatform Academy-kurssin, päivitä CoddyKit PROhon. Kotlin Multiplatform Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Kaikkialla toimivat suspend-funktiot”?

Kirjoita monialustaisesti turvallista asynkronista logiikkaa korutiineilla Harjoittelet Kotlin Multiplatform Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Kotlin Multiplatform Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Kotlin Multiplatform Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.

Kuinka kauan ”Kaikkialla toimivat suspend-funktiot”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Kotlin Multiplatform Academy-oppitunnilla?

Kyllä. Jokainen Kotlin Multiplatform Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Kaikkialla toimivat suspend-funktiot
  2. Dispatcherit eri alustoilla
  3. CoroutineScope ja elinkaari
  4. withContext ja strukturoitu samanaikaisuus
← Takaisin: Kotlin Multiplatform Academy