草庐IT

coroutine_handle

全部标签

android - 模拟返回 Kotlin Coroutines Deferred 类型的方法的返回值

我正在使用Kotlin协程,特别是使用Retrofit的CoroutineCallAdapterFactory。然后我正在尝试对一个类进行单元测试,该类又利用Retrofit接口(interface)(GalwayBusService下面)。interfaceGalwayBusService{@GET("/routes/{route_id}.json")fungetStops(@Path("route_id")routeId:String):Deferred}在我的单元测试中我有valgalwayBusService=mock()然后尝试类似以下的方法来模拟调用该方法时返回的内容。问题

android-studio - 编译错误: "-Xcoroutines has no effect: coroutines are enabled anyway in 1.3 and beyond"

当我尝试编译我用Kotlin编写的Android应用程序时,我收到以下编译错误,并且我的构建失败:w:-Xcoroutineshasnoeffect:coroutinesareenabledanywayin1.3andbeyond我该如何解决这个问题? 最佳答案 事实证明,解决这个问题实际上很容易,我想我会记录下我的解决方案,以供将来无疑会偶然发现同样问题的人使用。只需从您的应用级build.gradle中删除以下block,在AndroidStudio中点击“立即同步”并重新构建:kotlin{experimental{corou

android - Kotlin Coroutines 的现有 3 函数回调

我有一个具体示例的一般性问题:我想在拍照时使用Kotlin协程魔法而不是Android中的回调hell。manager.openCamera(cameraId,object:CameraDevice.StateCallback(){overridefunonOpened(openedCameraDevice:CameraDevice){println("CameraonOpened")//evenmorecallbackswithopenedCameraDevice.createCaptureRequest()....}overridefunonDisconnected(cameraD

kotlin - 关闭 kotlinx.coroutines channel 的作用

使用channel.close()关闭kotlinx.coroutineschannel有什么作用,不手动关闭channel的负面影响是什么?如果我不手动关闭channel会不会有一些不必要的处理?是否会在某处引用channel以防止其成为GCd?还是关闭功能只是作为一种通知channel的潜在用户它不能再使用的方式而存在。(从Kotlin论坛https://discuss.kotlinlang.org/t/closing-coroutine-channels/2549转贴的问题) 最佳答案 从概念上讲,通过在该channel上发送

android - Kotlin Coroutines 在 Android 中的正确方式

我正在尝试使用异步更新适配器内的列表,我可以看到有太多样板。KotlinCoroutines的使用方法正确吗?可以进一步优化吗?funloadListOfMediaInAsync()=async(CommonPool){try{//Longrunningtaskadapter.listOfMediaItems.addAll(resources.getAllTracks())runOnUiThread{adapter.notifyDataSetChanged()progress.dismiss()}}catch(e:Exception){e.printStackTrace()runOnU

MongoDB/NOSQL : Best approach to handling read/unread status on messages

假设您有大量用户(M)和大量文档(N),并且您希望每个用户能够将每个文档标记为已读或未读(就像任何电子邮件系统一样)。在MongoDB中表示这一点的最佳方式是什么?还是其他任何文档数据库?StackOverflow上有几个问题针对关系数据库提出了这个问题,但我没有看到任何有关文档数据库的建议:What'sthemostefficientwaytorememberread/unreadstatusacrossmultipleitems?Implementinganefficientsystemof"unreadcomments"counters通常,答案涉及一个表格,其中列出了用户已阅读

error-handling - 在 go 中处理多个错误

我是新手,发现错误处理非常冗长。我已经阅读了它的推理并且大部分同意,但是在某些地方,处理错误的代码似乎比实际工作要多。这是一个(人为的)示例,我在其中管道“Helloworld!”进入cat并读取并打印输出。基本上每一行都有另外三个来处理错误,而我什至什么都没有处理。packagemainimport"fmt"import"io"import"io/ioutil"import"os/exec"funcmain(){cmd:=exec.Command("cat","-")stdin,err:=cmd.StdinPipe()iferr!=nil{return}stdout,err:=cmd

error-handling - 返回结构或错误的惯用方式是什么?

我有一个函数返回一个Card,它是一个struct类型,或者一个错误。问题是,发生错误时如何从函数中返回?nil对结构无效,并且我的Card类型没有有效的零值。funccanFail()(cardCard,errerror){//returnnil,errors.New("Notyetimplemented");//FailsreturnCard{Ace,Spades},errors.New("notyetimplemented");//Works,butveryugly}我发现的唯一解决方法是使用*Card而不是Card,当出现错误时将其设为nil或者在没有错误发生时将其指向实际的C

error-handling - 检测不同类型网络错误的可移植方法

我想确定网络级别发生了什么样的错误。我发现的唯一方法是使用正则表达式检查错误消息,但现在我发现这些消息可以使用不同的语言(取决于操作系统配置),因此很难被正则表达式检测到。有没有更好的方法?packagemainimport("github.com/miekg/dns""net""regexp")funcmain(){varcdns.Clientm:=new(dns.Msg)m.SetQuestion("3com.br.",dns.TypeSOA)_,_,err:=c.Exchange(m,"ns1.3com.com.:53")checkErr(err)m.SetQuestion("e

error-handling - 去检查自定义错误的类型

我很难在Go中使用自定义错误类型。我读了BlogpostonErrors所以我尝试了这个:在我的model.go中,我定义了一个自定义错误:typeModelMissingErrorstruct{msgstring//descriptionoferror}func(e*ModelMissingError)Error()string{returne.msg}在我的一种方法中,我抛出了一个这样的自定义错误:...returnModel{},&ModelMissingError{"nomodelfoundforid"}...在该方法的调用者中,我想检查其类型返回的错误,如果它实际上是Mode