gpt4 book ai didi

javascript - 将 Typeahead 与 SignalR 结合使用

转载 作者:行者123 更新时间:2023-12-03 10:01:54 28 4
gpt4 key购买 nike

我正在尝试将 Typeahead 与我的 SignalR 实现一起使用。发生的情况是我的集线器受到攻击并返回值,但 .done() 之后的 结果未定义。我不明白为什么?

Javascript

$(function () {

var search = $.connection.searchHub;
$.connection.hub.start().done(function () {

$('#searchBar').typeahead(null, {
minLength: 2,

// begin source
source: function (query, process) {
var suggestions = [];// my callback value


search.server.search(query)
.done(function (result) {
console.log(result);
$.each(result, function () {
console.log(result);
suggestions.push(this);
process(suggestions);//process is a callback method
});
}).fail(function (error) {
console.log(error);
process([]);//process is a callback method, don't know if this is necessary here, but will produce no suggestions
});
}
});

});

中心:

[HubName("searchHub")]
public class SearchHub : Hub
{
public async Task Search(string query)
{
api = new MovieApi();
var result = await api.Search(query);

if (result.results != null)
{
Clients.Client(Context.ConnectionId).results(result.results[0].title);
}
else
{
Clients.Client(Context.ConnectionId).noResults("There are no search results!");
}

}
}

最佳答案

您的搜索方法不会返回任何内容,因此它的未定义并不奇怪。您需要更改为Task<T>并返回一些东西

此外,我看不到您正在订阅 resultsnoResults ?喜欢

search.client.results = function(result) {
console.log(result);
};

编辑:为此使用 SIignalR 也很奇怪,带有请求/响应的标准 REST 在这里应该没问题

关于javascript - 将 Typeahead 与 SignalR 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30558351/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com