我有一个使用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调用这个函数时,它会非常混乱。
我被卡住了,我现在真的不怎么走得更远。救命! :)