Раньше я помещал одноразовых слушателей внутрь resolve
. Следующий код может убедиться, что страница должна получить сообщение yes
для разрешения x
, затем "да еще раз" для разрешения y
и т. д.:
app.config(['$stateProvider', function ($stateProvider) {
$stateProvider
.state('edit', {
resolve: {
x: ['$q', function ($q) {
var deferred = $q.defer();
$window.addEventListener("message", function (e) {
if (e.data === "yes") deferred.resolve(e.data)
}, { once: true };
return deferred.promise
}],
y: ... ...
if (e.data === "yes again") deferred.resolve(e.data)
... ...
return deferred.promise
}],
z: ... ...
return deferred.promise
Теперь я хочу использовать socket.io
для реализации слушателя; он прослушивает сообщения, отправляемые сервером. Если бы это было не в resolve
, я бы использовал следующее для получения сообщений:
var socket = io.connect();
socket.on('message', function (message) {
console.log(message)
})
Мне нужно получить один socket
для одной страницы. Кто-нибудь знает, как поместить его в несколько resolve
, чтобы добиться того, что сделали прослушиватели событий?
several resolve
— похоже, вы хотите выполнить обещание более одного раза - person Jaromanda X   schedule 28.06.2017