Используя цикл внутри new Promise(...)
, вы получите результат первой итерации только при использовании обещания, действительно ли это ожидаемое поведение?
Согласно документации node-sparkclient одновременно можно отправлять только одно вложение. Вы можете отправить несколько вложений, используя Promise.all
следующим образом:
function postAttachment(roomId, message, file) {
return new Promise(function (fullfill, reject){
var messageParams = {}
var sanitizedMessage = '>'+message.replace(/\n/g,"<br>")
messageParams.file = fs.readFileSync('uploads/'+file);
messageParams.filename = file;
messageParams.markdown = true
sparkClient.createMessage(roomId, sanitizedMessage, messageParams, function(err,message){
if (err) {
reject(err)
}
else {
fs.unlinkSync('uploads/'+ file);
fullfill(message)
}
});
})
}
function postAttachments(roomId, message, files) {
return Promise.all(files.map(file => postAttachment(roomId, message, file));
}
Если вы хотите отправить только одно вложение со всеми файлами, вы можете объединить свои файлы перед отправкой.