Сообщение от 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]);
}
);
};
}]);