Ich lade Anlagen mit Rest API in SharePoint 2013, dafür muss ich Upload-Anlage Methode auf synchron aufrufen.Promise-Ketten in angularjs
Denn wenn ich Upload-Anlage Methode asynchron aufrufen bekomme ich 409 Konflikt Fehler.
Wie Kette Versprechen Objekte in für loop.i.e Ich möchte Erfolg zweite Befestigungsmethode nennen in der ersten Befestigung und so weiter ..
Bitte helfen Sie mir in bester Ansatz in for-Schleife von Versprechungen Verkettungs.
gemeinsame Methode Anhänge zum Speichern:
var saveFileAngularJS = function (file, url) {
var deferred = $q.defer();
getFileBuffer(file).then(function (fileArrBuffer) {
$http({
method: 'POST',
url: baseUrl + url,
headers: {
'Accept': 'application/json;odata=verbose',
'Content-Type': undefined,
'X-RequestDigest': jQuery("#__REQUESTDIGEST").val()
},
data: new Uint8Array(fileArrBuffer),
transformRequest: []
}).then(function successCallback(data) {
deferred.resolve(data);
alert('Successfully saved.', data);
}, function errorCallback(error) {
deferred.reject(error);
alert('Failed to save!!!.', error);
});
});
return deferred.promise;
};
Methode aufrufen:
for (var i = 0; i < $scope.files.length; i++) {
var file = $scope.files[i]._file;
var response = lssDealService.insertAttachment(transactionId, file);
}
var insertAttachment = function (dealId, file) {
var attachmentUrl = listEndPoint + "/GetByTitle('TransactionList')/GetItemById(" + dealId + ")/AttachmentFiles/add(FileName='" + file.name + "')";
return baseService.saveFile(file, attachmentUrl);
};
Insert Befestigung rufen Savefile-Methode.
Ich möchte diese für Schleife sequenziell ausführen, sobald die Schleife abgeschlossen ist, muss ich alle Versprechen verarbeiten und Erfolgsmeldung an den Benutzer anzeigen.
Bitte helfen Sie mir, die Verkettungsversprechen in effektiver Weise zu schreiben.
Sie können auf "http://jsfiddle.net/jsengel/0ryvkvph/" verweisen – nikhil