Ich habe eine einfache Versprechen Kette, die aus zwei Funktionen besteht, möchte ich jetzt diese Kette so in meinem HTML nennen.Verwenden von Versprechen Ketten in Knoten
Ich möchte auch jetzt, wenn eine Funktion innerhalb der Kette einzeln aufgerufen werden kann wie eine meiner Funktionen ein paar Mal verwendet wird.
hier ist meine Kette
$scope.BuildImage = function() {
return new Promise(function() {
saveCanvas = JSON.stringify(canvas);
localStorage.setItem('CC-canvas', saveCanvas);
localStorage.setItem('format', sessionStorage.getItem('format'));
localStorage.setItem('backgroundColor', sessionStorage.getItem('backgroundColor'));
localStorage.setItem('backgroundImage', sessionStorage.getItem('backgroundImage'));
localStorage.setItem('FirstImage', sessionStorage.getItem('FirstImage'));
localStorage.setItem('SecondImage', sessionStorage.getItem('SecondImage'));
localStorage.setItem('ThirdImage', sessionStorage.getItem('ThirdImage'));
if(localStorage.getItem('CC-canvas')){
$scope.myCreation ='';
}
});
};
$scope.generate = function() {
return new Promise(function() {
$scope.generating = true;
$scope.generateBtn = 'Generating';
for(i = 0; i < $scope.gallery.length; i++){
$scope.select[i] = '';
}
$scope.gallery = [];
$scope.checkPhoto = [];
$scope.uploadImage($scope.creative).then(function(result){
$scope.generateCanvas(result, $scope.left, $scope.tops, $scope.wi, $scope.hi, $scope.per, $scope.btmR, $scope.btmL, $scope.backUrl)
.then(function(successUrl){
$timeout(function(){
$scope.photosToPhp.push(canvas2.toDataURL());},800);
console.log($scope.count);
console.log($scope.photos[$scope.format].length);
console.log($scope.backUrl);
console.log($scope.photos[$scope.format][$scope.count]['backUrl']);
if($scope.count < ($scope.photos[$scope.format].length - 1)){
$scope.generate();
$scope.count ++;
$scope.left = $scope.photos[$scope.format][$scope.count]['left'];
$scope.tops = $scope.photos[$scope.format][$scope.count]['tops'];
$scope.wi = $scope.photos[$scope.format][$scope.count]['wi'];
$scope.hi = $scope.photos[$scope.format][$scope.count]['hi'];
$scope.per = $scope.photos[$scope.format][$scope.count]['per'];
$scope.btmR = $scope.photos[$scope.format][$scope.count]['btmR'];
$scope.btmL = $scope.photos[$scope.format][$scope.count]['btmL'];
$scope.backUrl = "/mm3/public/img/formats/" + $scope.format + "/" + $scope.photos[$scope.format][$scope.count]['backUrl'];
$scope.$apply();
$scope.canvasHide = true;
}else{
//all photos've been pushed now sending it to back end
$timeout(function(){
$http.post('/mm3/savePhotos', $scope.photosToPhp).then(function(success){
$scope.generating = false;
$scope.generateBtn = 'Generate';
//creating mock up gallery
for(var x = 0; x < success.data.photos; x++){
var file ='/mm3/tmp/'+ success.data.folder + "/out" + x + ".png";
$scope.gallery.push(file);
}
$scope.photosToPhp = [];
},function(error){
});
},800);
$scope.count = 0;
$scope.left = $scope.photos[$scope.format][$scope.count]['left'];
$scope.tops = $scope.photos[$scope.format][$scope.count]['tops'];
$scope.wi = $scope.photos[$scope.format][$scope.count]['wi'];
$scope.hi = $scope.photos[$scope.format][$scope.count]['hi'];
$scope.per = $scope.photos[$scope.format][$scope.count]['per'];
$scope.btmR = $scope.photos[$scope.format][$scope.count]['btmR'];
$scope.btmL = $scope.photos[$scope.format][$scope.count]['btmL'];
$scope.backUrl = "/mm3/public/img/formats/" + $scope.format + "/" + $scope.photos[$scope.format][$scope.count]['backUrl'];
$scope.$apply();
}
})
.catch(function(errorUrl){
console.log(errorUrl);
})
});
});
};
Promise.all([BuildImage()]).then(generate);
und hier ist die HTML ich von der Kette nennen
<div class="btn btn-primary" ng-model="creative" uib-btn-radio="'local'" ng-click="MyChain()">GENERATE
nur anrufen 'BuildImage() dann (erzeugen)' tun? – Icycool