Ich habe einen Abfrageservice in AngularJS geschrieben und möchte den Dienst starten, wenn meine Postanforderung erledigt ist. Aber wenn ich die GUI anrufe, ist der Abfrageservice aktiv.Kann ich den Abrufdienst per Anruf starten? AngularJS
ich habe versuchen, eine Start-Funktion, Ende-Funktion zu implementieren und die start() Funktion aufrufen, wenn der Post-Anforderung erfolgt .. aber es funktioniert nicht:/
Meine Umfrage Service:
.factory('NotificationPollService',
['$http', '$q', '$interval',
function ($http, $q, $interval) {
var deferred = $q.defer();
var notification = {};
notification.poller = $interval(function(id) {
$http.get('http://localhost:9999/v1/jmeter/id', {cache: false})
.success(function(data, status, headers, config) {
return data;
}, 10000);
});
notification.endPolling = function() {$interval.cancel(this.interval);};
}])
und die Steuerung, die ich die Anfrage schreiben
.controller('HomeController',
['$scope', '$rootScope', 'SendJmeterFile', 'NotificationPollService',
function ($scope, $rootScope, SendJmeterFile , NotificationPollService) {
$scope.upload = function() {
var customArtifacts = "";
var testDataBase = "";
if($scope.jmeterFile.customArtifact == undefined){
customArtifacts = null;
} else {customArtifacts = $scope.jmeterFile.customArtifact.base64}
if($scope.jmeterFile.testDataBase == undefined){
testDataBase = null;
} else {testDataBase = $scope.jmeterFile.testDataBase.base64}
SendJmeterFile.upload($scope.jmeterFile.jmeter.base64, customArtifacts, $scope.jmeterFile.customProperties, $scope.jmeterFile.instanceConfiguration, $scope.jmeterFile.instances, $scope.jmeterFile.providerID, testDataBase)
.then(function(data) {
alert("Daten erfolgreich verschickt!");
console.log(data);
NotificationPollService.poller(data.id)
//.then(function(data) {
/*if(data.status == "SETUP")
if(data.status == "TEST")
if(data.status == "DONE")
if(data.status == "ERROR")
}), function(data) {
})*/
}, function(data) {
alert("Fehler!");
console.log(data);
});
};
}])
danke für diese hilfreiche Antwort! Ich habe es versucht und bekomme den Fehler, dass NotificationPollService kein Konstruktor ist, kann ich den NotificationPollService in der SendJMeterFile.upload.then .. Erfolgsfunktion initialisieren? – Kai
Dies ist ein guter Fall Szenario meiner Aufgabe: Senden Sie die Datei an den Server, der Server führen Sie es aus und setzen Sie den Status hängt von dem Schritt der Server (running, done, error, test) und in dieser Zeit möchte ich abfragen der Dienst mit der ID der Antwort des Servers. also ich denke, ich rufe den Poll-Service auf den Erfolgsfall nach der Post Anfrage oder bin ich falsch? – Kai
Ja, das ist die Annahme, die ich basierend auf Ihrem ursprünglichen Code gemacht habe. Ich bin nicht sicher, warum Sie diesen Fehler erhalten, obwohl es etwas mit der Tatsache zu tun haben könnte, dass Sie meinen Code möglicherweise direkt kopiert haben? Es wird nicht funktionieren, weil ich in den Beispielskripten kein Winkelmodul definiert habe. Ich habe für Sie einen Plnkr erstellt, der funktioniert (natürlich ohne das eigentliche Backend), also können Sie vielleicht nachsehen, ob Ihnen das besser hilft: http://plnkr.co/edit/e7vqU82fqYGQuCwufPZN?p = Vorschau –