Ni nini tofauti kati ya Scala Future onComplete na naThen kazi?
Wote `andThen` na `onComplete` kuruhusu wewe kuchunguza matokeo ya baadhi ya baadaye kupitia kazi callback. Hata hivyo, `andThen` inaweza kuwa chained, na tofauti na `onComplete`, ni dhamana ya utaratibu ambao kazi callback zitatumika. Aidha, wito wa kurudi kwa `andThen` inaweza kuwa sehemu ya kazi, kushughulikia tu subset ya matokeo (kwa mfano, tu `Success` au tu `Failure`).  Fikiria mfano ufuatao kutumia `andThen` na `map`:  ` ` ` ` def demoAndThen(fut: Future[Int]): Future[Int] = { fut.andThen { kesi Mafanikio ((value) => println ((s"andThen1: $value") } .andThen { kesi Mafanikio ((thamani) => println ((s"andThen2: $thamani") } . { ramani i => println ((s"map: $i") mimi } } ` ` ` `  Wakati `fut` kukamilika kwa mafanikio, "na kisha1:...", "na Kisha2:..." na "ramani:..." kuchapishwa katika utaratibu huo.  Fikiria mfano analogo kutumia `onComplete` na `map`:  ` ` ` ` defOnComplete ((fut: Future[Int]): Future[Int] = { futonComplete { t: Jaribu[Int] => println(s"onComplete1: $t") } futonComplete { t: Jaribu[Int] => println(s"onComplete2: $t") } fut.map { i => println ((s"map: $i") mimi } } ` ` ` `  Katika kesi hii, wakati `fut` kukamilika kwa mafanikio, "onComplete1:...", "onComplete2:..." na "ramani:..." kuchapishwa katika baadhi ya utaratibu maalum.  Ingawa `andThen` ni chained, kazi ya callback haina kwa ujumla kuathiri matokeo ya matokeo ya `Future`. Lakini kuwa na ufahamu: kama callback throws baadhi makosa mbaya, hatima yanayotokana kamwe kukamilisha.