agrosner / DBFlow

A blazing fast, powerful, and very simple ORM android database library that writes database code for you.
MIT License
4.87k stars 598 forks source link

Can't query with defer #1734

Closed epolar closed 2 years ago

epolar commented 2 years ago

DBFlow Version: 5.0.0-alpha2

Bug or Feature Request: defer is suspend, is my code fault?

Description: code on my repository:

    fun getDefaultPaymentAsync(): Deferred<Payment?> {
        return (select from Payment::class
                where (Payment_Table.is_delete.`is`(false))
                orderBy OrderBy.fromProperty(Payment_Table.is_default).descending()
                orderBy OrderBy.fromProperty(Payment_Table.last_modify_time).descending()
                ).async(database) { d -> querySingle(d) }
            .defer()
    }

code how I use it:

        runBlocking {
            PaymentRepository
                .getDefaultPaymentAsync()
                .await().let { setPayment(it) }  // suspend here, setPayment never be invoke.
         }
loquitowen commented 2 years ago

这是来自QQ邮箱的假期自动回复邮件。   您好,我最近正在休假中,无法亲自回复您的邮件。我将在假期结束后,尽快给您回复。

epolar commented 2 years ago

My fault, I should use GlobalScope.launch not runBlocking.