gpt4 book ai didi

javascript - Angular Promise ($q) 不工作

转载 作者:行者123 更新时间:2023-11-30 05:43:43 24 4
gpt4 key购买 nike

我正在尝试在我的演示应用程序中将 Angular 与 SignalR 结合使用。我正在尝试使用 $q 服务来使用 promise 。不知道我的代码有什么问题,但它不起作用。

服务

var boardConsole = $.connection.builtinboard;
var chat = angular.module('chat', []);
chat.factory('board', ['$q', '$timeout', function ($q, $timeout) {
var board = {};
board.startBoard = function (callback) {
$.connection.hub.start(function () {
if (angular.isFunction(callback)) {
callback();
}
});
};
board.loadAllMessages = function () {
var deferred = $q.defer();
boardConsole.server.loadAllMessages().done(function (messages) {
deferred.resolve(messages);
}).fail(function () {
deferred.reject(function () {
//SHOW NOTHING FOUND
});
});
return deferred.promise;
};
return board;
} ]);

Controller

chat.controller('chatController', ['$scope', 'board', function ($scope, board) {
$scope.Messages = [];
board.startBoard(function () {
board.loadAllMessages().then(function (messages) {
alert('1');
$scope.Messages = messages;
});
});
} ]);

它不工作

最佳答案

只需将其包装在 $timeout 中即可。如有必要,这将执行安全的 $apply

$timeout(function(){
deferred.resolve(messages);
});

关于javascript - Angular Promise ($q) 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19248027/

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