SignalR函数返回值
本文关键字:返回值 函数 SignalR | 更新日期: 2023-09-27 18:28:11
我创建了一个SignalR集线器,其中包含以下集线器功能:
public bool GetStatus()
{
return true;
}
我想从我的JS代码中调用这个函数,并获得这个调用的请求。类似这样的东西:
var result = hub.server.getStatus();
if (result)
alert('success');
如果不返回布尔的任务,这可能吗?
谢谢。
否。SignalR JavaScript客户端是非阻塞的;你需要遵循Promise界面,就像这样:
hub.server.getStatus().done(function(result) {
if (result) {
alert('success');
}
});
在客户端,您需要使用promise接口。但在服务器端,这完全取决于你,下面的代码来自SignalR指南网站:
同步
public IEnumerable<Stock> GetAllStocks()
{
// Returns data from memory.
return _stockTicker.GetAllStocks();
}
异步
public async Task<IEnumerable<Stock>> GetAllStocks()
{
// Returns data from a web service.
var uri = Util.getServiceUri("Stocks");
using (HttpClient httpClient = new HttpClient())
{
var response = await httpClient.GetAsync(uri);
return (await response.Content.ReadAsAsync<IEnumerable<Stock>>());
}
}
只需根据您的需要更改服务器签名即可。