Scala gələcəyi arasındakı fərq və anthen funksiyaları arasındakı fərq nədir?
Həm `andhen 'və` oncamplete' bəzi gələcəklərin nəticəsini bir çağırış funksiyası ilə müşahidə etməyə imkan verir.Bununla birlikdə, `andhen 'zəncirlənə bilər və' Oncomplete'dən fərqli olaraq, bu, zəngin funksiyalarının tətbiq olunacağı əmrinə zəmanət verir.Bundan əlavə, `andhen-ə verilən çağırış qismən funksiyası ola bilər, yalnız nəticələrin alt hissəsini (məsələn, yalnız" uğur və ya yalnız "uğursuzluq").

"And" və "Xəritə" istifadə edərək aşağıdakı nümunəni nəzərdən keçirin:

`` `'
Def Demoandthen (FUT: Gələcək [int]): Gələcək [int] = {
  fut.andthen {Case Uğur (Dəyər) => Println (S "Andthen1: $ dəyəri")}
    .Andthen {Case Uğur (Dəyər) => Println (S "Andthen2: $ dəyəri")}
    .map {i =>
      Println (s "xəritəsi: $ i")
      mən
    }
}
`` `'

"Fut" uğurla başa çatdıqda, "Andshen1: ...", "Andthen2: ..." və "Xəritə:" bu qaydada çap ediləcək.

'Oncomplete' və 'Xəritə' istifadə edərək analoji nümunəni nəzərdən keçirin:

`` `'
def demooncomplete (FUT: GƏLƏCƏK [İnt]): Gələcək [int] = {
  fut.oncomplete {t: cəhd [int] => println (s "oncomplete1: $ t")}
  fut.oncomplete {t: cəhd [int] => println (s "oncomplete2: $ t")}
  fut.map {i =>
    Println (s "xəritəsi: $ i")
    mən
  }
}
`` `'

Bu vəziyyətdə, "Fut" uğurla başa çatdıqda, "OnCette1: ...", "Oncette2: ..." və "Xəritə: ..." bəzi təyin olunmamış qaydada çap olunacaq.

'Andshen' zəncirlənsə də, zəng edən funksiya ümumiyyətlə nəticənin nəticəsinə təsir etmir.Ancaq xəbərdar olun: Zəngin bir az ölümcül səhvləri yandırarsa, nəticədə gələcəyi heç vaxt başa çatmayacaqdır.