`andThen` आणि `onComplete` हे दोन्ही तुम्हाला कॉलबॅक फंक्शनच्या माध्यमातून भविष्यातील परिणामाचे निरीक्षण करण्याची परवानगी देतात. तथापि, `andThen` चेन केले जाऊ शकते, आणि `onComplete` च्या विपरीत, कॉलबॅक फंक्शन्स कोणत्या क्रमाने लागू होतील याची हमी देते. याव्यतिरिक्त, `andThen` ला दिलेला कॉलबॅक हा एक आंशिक फंक्शन असू शकतो, जो केवळ परिणामांचा एक उपसंच हाताळतो (उदाहरणार्थ, फक्त `सफलता` किंवा फक्त `अपयश`).  `andThen` आणि `map` वापरून खालील उदाहरणाचा विचार करा:  ` ` ` डेमोआणितेव्हा (भविष्यातील): भविष्यातील (Int) = { fut.andThen { case Success ((value) => println ((s"andThen1: $value") } .andThen { केस सक्सेस ((मूल्य) => प्रिंटln ((s"andThen2: $ मूल्य") } . { नकाशा i => println ((s"map: $i") मी } } ` ` `  जेव्हा `fut` यशस्वीरित्या पूर्ण होईल, तेव्हा "andthen1:... ", "andThen2:... " आणि "map:... " या क्रमाने मुद्रित केले जातील.  `onComplete` आणि `map` वापरून समान उदाहरण विचारात घ्याः  ` ` ` डेमोऑनकंप्लीट ((भविष्य: भविष्य [Int]): भविष्य [Int] = { futonComplete { t: Try[Int] => println(s"onComplete1: $t") } futonComplete { t: Try[Int] => println(s"onComplete2: $t") } फूटमॅप { i => println ((s"map: $i") मी } } ` ` `  या प्रकरणात, जेव्हा `fut` यशस्वीरित्या पूर्ण होते, "onComplete1:... ", "onComplete2:... " आणि "नकाशाः... " काही निर्दिष्ट क्रमाने मुद्रित केले जातील.  जरी ∀andThen∀ चेन केलेले असले तरी, कॉलबॅक फंक्शन सामान्यतः परिणामी ∀Future∀ च्या परिणामावर परिणाम करत नाही. परंतु लक्षात ठेवा: जर कॉलबॅकमध्ये काही घातक त्रुटी आढळल्या तर, परिणामी भविष्य कधीच पूर्ण होणार नाही.
आणि मग फंक्शन्समध्ये काय फरक आहे?