Я пытаюсь отправить большее количество файлов на github через node-rest-client в узле js.Я вызываю обещания для каждого файла, и каждое обещание будет вызывать одного http-клиента для отправки файла на github.Но я вижу, что только два файла отправляются и нет статуса о других файлах.
Код для отправки нескольких файлов с помощью обещаний
return await Promise.all(dataToSend.map(file => {
return new Promise((resolve, reject) => {
let fileName = repoName+"/" +file.filename;
let fileData = file.filedata;
let contenttype = file.contenttype;
salesforceToGit.sendDataToGIt(fileName, fileData, contenttype, commitMsg, "metadata", function (data, response) {
resolve(data);
});
});
}));
И API для отправки файла в GIT hub
function sendDataToGIt(filename, filedata, contenttype, commitMsg, repoName, callback) {
var buff = new Buffer.from(filedata);
var base64data = buff.toString('base64');
contenttype = "application/json";
var dataObj = {
"message": commitMsg,
"content": base64data
};
var agrs = {
data: dataObj,
headers: {
'Content-Type': contenttype,
'Authorization': '******************',
'User-Agent': 'adadasd'
}
};
try{
let gitHubUrl = "https://api.github.com/repos/REPO/" + repoName + "/contents/" + filename;
console.log("sending api request URL : " + gitHubUrl);
client.put(gitHubUrl,agrs,function(data,response){
if(response.statusCode === 201 || response.statusCode === 200){
console.log("file created in Git : " + data.content.path);
callback(data,response);
}else{
console.log("Error occured : " + filename);
}
});
}catch(err){
throw new Error('Error in sendDataToGIt : ' + err);
}
}