ASP.NET Web方法,在服务器端使用异步调用

时间:2016-03-01 18:11:20

标签: javascript c# asp.net asynchronous

我有一个使用JavaScript从客户端调用的ASP.NET Web服务(.asmx)。

假设Web服务有一个名为“GetTotalMovies()”的Web方法。此网络方法将返回一个int,其中包含YouTube上特定频道中的电影数量。

当调用此Web方法时,它会向YouTube REST API发出http请求,以获取特定频道的电影数量,然后将其返回到名为“GetTotalMovies()”的客户端。

调用YouTube REST API非常慢,所以我想用这个“pseude”代码异步执行此操作:

private async Task<int> GetTotalMoviesFromYouTubeApi()
{
     using(var client = new WebClient()) {
         return await client.DownloadStringAsync(_uri);
     }
}

这是我从客户端调用的Web方法:

[WebMethod]
public int GetTotalMovies() {
    return (int)await PostDataToYouTubeApi(s);
}

这不起作用,因为当方法不是异步时,我在方法GetTotalMovies中使用await关键字。

但是如果我将方法更改为异步,我需要从方法返回Task。当我改变它时,当JavaScript调用这个函数时,它会非常混乱。

我被卡住了,我现在真的不怎么走得更远。救命! :)

0 个答案:

没有答案