【发布时间】:2016-08-30 14:35:40
【问题描述】:
我正在尝试使用异步返回结果,但不是返回我想要的数据,而是返回整个对象
[System.Web.Services.WebMethod(BufferResponse=false)]
public static async Task<bool> getLogin(string username, string password)
{
Login login = new Login();
Task<bool> loginVerify = login.verifyLogin(username,password);
await loginVerify;
return loginVerify.Result;
}
public class Login
{
public async Task<bool> verifyLogin(string username, string password)
{
return true;
}
}
Firefox Firebug 的结果表明:
{"d":{"Result":true,"Id":2,"Exception":null,"Status":5,"IsCanceled":false,"IsCompleted":true,"CreationOptions":0,"AsyncState":null,"IsFaulted":false}}
为什么不只是显示结果?
我试过跑步
public static async Task<bool> getLogin(string username, string password)
{
Login login = new Login();
Task<bool> loginVerify = login.verifyLogin(username,password);
await loginVerify;
return false;
}
但萤火虫报告是一样的,只是它在 json 中说 Result false
{"d":{"Result":false,"Id":2,"Exception":null,"Status":5,"IsCanceled":false,"IsCompleted":true,"CreationOptions":0,"AsyncState":null,"IsFaulted":false}}
所以我的问题是为什么它显示整个对象而不是结果?
【问题讨论】:
-
WebMethods 是否支持
async-await? -
我假设是这样,因为我得到了结果并且在结果中我得到了正确的答复。它只是不断发送整个对象,而不仅仅是结果。对我来说有点莫名其妙.....
-
这告诉我不支持
async-await。你应该阅读更多关于async-await的信息。 -
我会假设如果不支持它会返回答案。我的意思是不要误会我的意思,我可以在 jquery 中对对象进行排序并得到结果,但我希望有人知道为什么它返回完整的对象,然后只返回数据。
标签: c# jquery async-await webmethod