android - RxJava 在onNext(User user) 可以把user賦值給外部成員變量mUser嗎?
問(wèn)題描述
我剛學(xué)RxJava, 執(zhí)行完下面的代碼 mUser還是null 原因會(huì)不會(huì)是異步造成的,純屬猜測(cè),,請(qǐng)路過(guò)的大大幫忙看看,非常感謝OvO~另外,想請(qǐng)教下你們對(duì)于從網(wǎng)絡(luò)取到的user一般怎么處理?/?
問(wèn)題解答
回答1:doOnNext會(huì)在onNext之前被調(diào)用,一般是一些準(zhǔn)備工作,隨意不太了解你在onNext和doOnNext為什么會(huì)寫(xiě)一樣的代碼.....另外你用的應(yīng)該是retrofit吧,不知道Retrofit的Build有沒(méi)有錯(cuò),所以有可能是根本沒(méi)有獲取到User信息,RxJava本來(lái)就是專(zhuān)門(mén)處理異步流的庫(kù),所以不存在你說(shuō)的“異步問(wèn)題”
關(guān)于怎么處理要看你的業(yè)務(wù)需要而定,比如會(huì)根據(jù)User的地區(qū),再發(fā)起請(qǐng)求來(lái)獲得當(dāng)?shù)靥鞖猓换蛘哌^(guò)濾掉某些年齡小于18的User
回答2:異步編程,代碼執(zhí)行完相當(dāng)于預(yù)定了一個(gè)任務(wù),可能這個(gè)任務(wù)還沒(méi)有開(kāi)始執(zhí)行。要等到異步任務(wù)執(zhí)行完成后,才會(huì)執(zhí)行回調(diào),才能拿到真正的返回值
舉個(gè)例子:要睡覺(jué)了,告訴媳婦,明早我要吃蛋餅,做好了叫我。等你說(shuō)完這句話,蛋餅?zāi)兀康帮災(zāi)兀匡@然得等到明天早上才有
回答3:把doOnNext操作符去掉再試試
相關(guān)文章:
1. docker安裝后出現(xiàn)Cannot connect to the Docker daemon.2. javascript - vue生成一維碼?求助!!!!!急3. docker-compose中volumes的問(wèn)題4. java - SSH框架中寫(xiě)分頁(yè)時(shí)service層中不能注入分頁(yè)類(lèi)5. boot2docker無(wú)法啟動(dòng)6. docker網(wǎng)絡(luò)端口映射,沒(méi)有方便點(diǎn)的操作方法么?7. 如何使用git對(duì)word文檔進(jìn)行版本控制?8. java - Spring事務(wù)回滾問(wèn)題9. javascript - mock.js可以存儲(chǔ)數(shù)據(jù)嗎10. nignx - docker內(nèi)nginx 80端口被占用

網(wǎng)公網(wǎng)安備