簡體   English   中英

異步函數返回false,但應返回true

[英]Async function returns false but should return true

我對返回的函數有疑問:false。

問題在於:返回成功運行在實際:成功= true之前,因為它是一個異步函數。

該函數成功執行后如何返回true?

public bool onefunction(ChromiumWebBrowser browser) {
  bool success = false;
  browser.GetMainFrame().EvaluateScriptAsync("someinfo").ContinueWith(t => {
    if (t.IsFaulted == false) {
      var response = t.Result;
      if (response.Success) {
        success = true;
      }
    }
  });

  //It returns false because this code runs before: "success = true"
  return success;
}

“一路異步”方法:

public async Task<bool> onefunction(ChromiumWebBrowser browser) {
  bool success = false;
  try
  {
      var response = await browser.GetMainFrame().EvaluateScriptAsync("someinfo");
      succes = response.Success;
  }
  catch( Exception ex )
  {
      // TODO: Write Errorlog
  }

  return success;
}

注意:這意味着您也需要更改調用代碼。 如果您不能這樣做,請告知。 我們將為這種情況找到解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM