首页 > 解决方案 > Kotlin 等待函数完成然后完成代码

问题描述

在我的代码中,我有 2 个更新全局变量的函数。当我打电话给他们时(在 onCreate 之上)

像这样:

override fun onCreate(savedInstanceState: Bundle?) {
    userManager = UserManager(this) 
        observeEmail()
        observePassword()

代码继续,我想等待这两个函数完成然后继续我的代码我该怎么做?

如您所见,首先是来自 onCreate 的打印消息,然后是来自 onCreate 打印之前的函数

印刷

代码

标签: androidkotlin

解决方案


在我看来,observe() 方法中的第二个参数是回调。

我的建议是这样的:

在类的最顶端,创建一个名为 callBack 的类全局变量,如下所示:

callBack:(()->Unit)?=null

然后,在您的 onCreate() 内部,将您希望在 observeEmail 之后发生的所有事情都推送到一个庞大的例程中,并让 callBack 获取该例程的值。像这样:

callBack={doEverything()
doMore()
doOtherStuff()
}

现在回到 .observe() 的第二个参数,您知道打印电子邮件提示的地方。在该打印行下,添加以下内容:

callBack?.invoke()

现在一切都将等到 observe() 返回结果。


推荐阅读