Sobes.tech
Junior — Middle

Фарқи истифодаи усулҳои subscribeOn ва observeOn дар RxJava чист ва онҳо чӣ гуна ба ҷараёни иҷро таъсир мерасонанд?

sobes.tech AI

Ҷавоб аз AI

Дар RxJava, усулҳо subscribeOn ва observeOn назорат мекунанд, ки кадом шохаҳо дар куҷо иҷро мешаванд, дар сатрҳои реактивӣ.

  • subscribeOn шохаро муайян мекунад, ки дар он сабт ва иҷрои манбаи маълумот (Observable) сурат мегирад. Ин таъсир мерасонад ба он, ки кай оғоз мешавад истеҳсоли маълумот.

  • observeOn шохаро иваз мекунад, ки дар он операторҳо ва коркарди натиҷаҳо пас аз даъвати ин усул иҷро мешаванд.

Масалан, агар шумо мехоҳед кори вазнинро дар шохаи пасзамина иҷро кунед ва натиҷаҳоро дар шохаи UI коркард кунед, метавонед нависед:

observable
    .subscribeOn(Schedulers.io())       // Манба дар шохаи пасзамина кор мекунад
    .observeOn(AndroidSchedulers.mainThread()) // Коркарди натиҷаҳо дар шохаи UI
    .subscribe(...);

Бинобар ин, subscribeOn ба шохаи манба таъсир мерасонад, ва observeOn — ба шохаи коркарди downstream.