Показать сообщение отдельно
  #17 (permalink)  
Старый 10.02.2017, 16:28
Аспирант
Отправить личное сообщение для okuznetsov1 Посмотреть профиль Найти все сообщения от okuznetsov1
 
Регистрация: 02.11.2016
Сообщений: 65

Сообщение от destus Посмотреть сообщение
okuznetsov1,
$scope.content = 'blabla';

var workerPromise1 = WorkerService.createAngularWorker(['input', 'output',   
    function(input, output) {  
		function parseCSV(input){
			/* body parseCSV */
			return parseInput
		}
		output.notify(parseCSV(input));
  }]);
  
var workerPromise2 = WorkerService.createAngularWorker(['input', 'output', '$http',   
    function(input, output, $http) {
		angular.forEach(input, function (value, key) {
                        $http.post('http://www.xxx.com/anguler-tasks-contacts/addContactData.php',{last_name:value[1], name:value[2], patronymic_name:value[3], address:value[4], telephone:value[5], url:value[6], description:value[7], completed:'false'})
                               .then(function(response){
                                    output.notify(response.data[0]);
                                });
          });
  }]);
  
  workerPromise1.then(function success(angularWorker) {  
    //The input must be serializable  
    return angularWorker.run($scope.content);    
  }, function error(reason) {  
    //for some reason the worker failed to initialize  
    //not all browsers support the HTML5 tech that is required, see below.  
  }).then(function success(result) {  
    //handle result  
  }, function error(reason) {  
    //handle error  
  }, function notify(Items) {  
    workerPromise2.then(function(angularWorker){
		return angularWorker.run(Items)
	}).then(
		function(){},
		function(){},
		function notify(response){console.log(response)}
	) 
  });

Спасибо, очень мне помогли.

Но сейчас из всего вышесказанного у меня возник ещё один вопрос (наверное последний):

У меня возникла необходимость (как ранее я и предполагал) задействовать 2-ой воркер (workerPromise2) для расширения функционала системы. В свзи с этим возник вопрос - "как можно запустить второй воркер из другого контроллера", возможно ли такое? Сейчас я продублировал код 2-го воркера в другом контроллере. Но такое решение разумеется мне не нравится.
По сути в другом контроллере я разместил такой же код (что вы прислали в последнем сообщении), выглядит так:

app.controller('MainController', ['$scope', 'WorkerService', 'LxNotificationService', '$http', '$log', function($scope, WorkerService, LxNotificationService, $http, $log) {

    $scope.content = 'blabla';

    $scope.addContact = function() { 

         var workerPromise2 = WorkerService.createAngularWorker(['input', 'output', '$http',   
         function(input, output, $http) {
		angular.forEach(input, function (value, key) {
                        $http.post('http://www.xxx.com/anguler-tasks-contacts/addContactData.php',{last_name:value[1], name:value[2], patronymic_name:value[3], address:value[4], telephone:value[5], url:value[6], description:value[7], completed:'false'})
                               .then(function(response){
                                    output.notify(response.data[0]);
                                });
                });
        }]);
  

        workerPromise2.then(function(angularWorker){
		return angularWorker.run(Items)
	}).then(
		function(){},
		function(){},
		function notify(response){console.log(response)}
	) 

    };

}]);

Последний раз редактировалось okuznetsov1, 10.02.2017 в 16:42. Причина: внёс коррективы более подробные (последние)
Ответить с цитированием