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

Сообщение от destus Посмотреть сообщение
,
Я подозреваю, что ты хотел выполнять запросы в теле воркера, следовательно тебе надо перенести строку 48 в тело воркера и оттуда в then коллбеке уведомлять главный поток, что запрос завершен и можно обновлять состояние contactslist.
Да, в теле воркера. Я пробовал так как вы посоветовали, но получаю эту ошибку в Firefox: "Error: An invalid or illegal string was specified
rg/<@http://www.xxx.com/anguler-tasks-contacts/js/angular.min.js:106:201.........."


Если запускаю в Ghrome, то ошибка выглядит так: "XMLHttpRequest cannot load . Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource."


var app = angular
            .module('contactList', ['lumx', 'ngSanitize', 'ngCsv', 'FredrikSandell.worker-pool'])
            .run(function (WorkerService) {
            //WorkerService.setAngularUrl('../bower_components/angular/angular.js');
            WorkerService.setAngularUrl('https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js');
            //WorkerService.addDependency(serviceName, moduleName, url);
        });

app.controller('ReadFileController', ['$scope', '$http', 'WorkerService', function ($scope, $http, WorkerService) {

        $scope.foo = function (content) {

            var workerPromise = WorkerService.createAngularWorker(['input', 'output', '$http', function (input, output, $http) {

                //var i=0;
                //var callback = function(i) {
                //  output.notify();
                //  i++;
                //};
                //for (var i = 0; i < 1000; i++) { callback(i); }

                $http.post('/anguler-tasks-contacts/addContactData.php',{last_name:1, name:2, patronymic_name:3, address:4, telephone:5, url:6, description:7, completed:'false'});

//                $http.post('/anguler-tasks-contacts/addContactData.php',{last_name:1, name:2, patronymic_name:3, address:4, telephone:5, url:6, description:7, completed:'false'})
//                          .then(function(response){
//                            output.notify(response);
//                        });
            
            }]);

            workerPromise
                .then(function success(angularWorker) {
                    //The input must be serializable
                    return angularWorker.run();
                }, 
                function error(reason) {
                    console.log('callback error');
                    console.log(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) {
                    console.log('success');
                    console.log(result);
                    //handle result
                    }, function error(reason) {
                        //handle error
                        console.log('error');
                        console.log(reason);
                    }, function notify(response) {
                            //handle update
                            console.log(response.data[0]);
                    }
                );

        };

}]);

Последний раз редактировалось okuznetsov1, 08.02.2017 в 19:59. Причина: убрал имя домена и более детально описал ошибку
Ответить с цитированием