Apa perbedaan antara fungsi Scala Future onComplete dan andThen?

Meskipun keduanya memungkinkan Anda untuk mengamati hasil beberapa masa depan melalui fungsi callback. Namun, `andThen ` dapat di-chain, dan tidak seperti `onComplete `, ia menjamin urutan di mana fungsi callback akan diterapkan. Selain itu, callback diberikan kepada `andThen ` mungkin merupakan fungsi parsial, menangani hanya subset hasil (misalnya, hanya `Success ` atau hanya `Failure `). Pertimbangkan contoh berikut menggunakan `andThen ` dan `map: `` ` dan `n defence ∂Then Future: ∂Then Future: ∂Then Future: ∂Then Future: ∂Then Future: ∂Then Future: ∂Then Future: ∂Then Future: ∂Then Future: ∂Then Future: ∂Then Future: ∂Then Future: ∂Then Future: ∂Then Future: ∂Then Future: ∂Then Future: ∂Then Future: ∂Then Future: ∂Then Future: ∂Then Future: ∂Then Future: ∂Then Future: ∂Then Future: ∂Then Future: ∂Then Future: ∂Then Future: ∂Then Future: ∂Then Future: ∂Then Future: ∂Then Future: ∂Then Future: ∂Then Future: ∂Then Future: ∂Then Future: ∂Then Future: ∂Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Then Future:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:Tron:T