当前位置: 首页 > 知识库问答 >
问题:

如何检查正在重写的单个异步C#任务的布尔返回值?[副本]

季凡
2023-03-14

我有这个方法:

    private async Task BackArrowTappedHandler()
    {
        Task<bool> sp = SavePageDataAsync();
        await Task.WhenAll(sp);
        var saveResult = sp.Result; 

        if (!saveResult)
            return;
        if (Device.RuntimePlatform is Device.iOS)
            await Navigation.PopModalAsync();
        else
            await Shell.Current.Navigation.PopAsync();
    }

它调用一个我可能想重写也可能不想重写的方法:

    public virtual async Task<bool> SavePageDataAsync()
    {
        return true;
    }
    public async Task<bool> OnSavePageAsync()
    {
        var IsValueLess = false;
        if (daily < 20)
        {
            msg1 = "Minimum words";
            msg2 = "Please set a number greater than 20";
            IsValueLess = true;
        }
       
        var alertDeckPopup = new AlertPopup(msg2);
        await PopupNavigation.Instance.PushAsync(alertDeckPopup);

        if (IsValueLess)
            return false;
        else
            return true;
    }

共有1个答案

林项明
2023-03-14

您可以在异步方法上使用await运算符来等待子methid的结果

bool sp = await SavePageDataAsync();
if(sp) 
{
// do action if true
} 
 类似资料:
  • 我一直在使用异步任务来访问web服务器,并使用结果更新控件。这有缺点,即它使异步方法特定于控件,并阻止我再次使用返回的字符串。 我的典型asyncTask代码如下

  • 我正在从事一项与react基于本机应用程序的用户管理相关的任务。在他们成功注册为用户后,我添加了一个存储布尔值的数据,并将其命名为emailVerifiedAccount(如果他们成功注册,这是存储的数据,如果他们单击发送给他们的电子邮件验证链接,则表明他们是否为验证用户)。在登录屏幕中,我想检查我在onAuthStateChanged中从firestore获得的布尔值,并且仅当我获得的email

  • 在VueJS中,我尝试使用axios返回布尔值 console.log刚刚返回 Promise{[[PromiseState]]:"待定",[[PromiseValue]]:未定义} 但我想要的回报不是真就是假。

  • 我觉得这给了我很小的灵活性每当我使用这个函数。使用此函数时,我通常会查找元素的第一次出现,但它只返回,我发现这一点有些欠缺。 使用此函数的主要原因是每当找到元素时,都会循环,因此使用会失去作用,因为不会短路。是相同的。 我是遗漏了什么,还是必须使用循环来获取JavaScript中的第一个匹配元素?

  • 下面的方法调用RetrieveRecords方法,该方法是异步的,返回类型为Task<>。调用方法接受datatype作为DataView。现在我得到一个错误“不能从System.Data.DataView转换到System.Task.DataView。我知道这个错误是由于类型转换不匹配造成的。我如何将任务<>转换到DataView。这对我来说是非常必要的。我做了很多研究,但没有找到解决方案。 返

  • 任何暗示都会很明显。