Возможно ли выполнить обещание без функции ожидания? Я читал, что это возможно с помощью функции setTimeout, но я не знаю, сколько времени потребуется, чтобы ответить. Когда я пишу в console.log, кажется, что он работает даже без функции ожидания, мне было интересно, как это работает с console.log, но не при назначении результата
const shareName="myshare";
const shareClient = serviceClient.getShareClient(shareName);
let shareExists:boolean;
//The below line doesn't return the result if I don't use await and shareExists will be undefined
shareClient.exists().then((result)=>{shareExists = result;}).catch((error)=>console.log(error.message));
//But when I write to console.log, it works fine without await, I can see the result in console
shareClient.exists().then((result)=>console.log(result)).catch((error)=>console.log(error.message))
У меня также возникают проблемы с разрешением результата в foreach l oop. В функции then я пытаюсь объединить загруженные файлы, но получаю пустой список файлов.
let fileList = "";
files.forEach(file => {
let bufferContent = Buffer.from(file.fileContent,'base64');
fileClient.uploadData(bufferContent)
.then(()=>{fileList+=file.fileName;fileList += ";"})
.catch((error)=>{this.showError(error,"processFile")});
});
Я попытался добавить async / await, как показано ниже, но такое же поведение.
files.forEach(async file => {
let bufferContent = Buffer.from(file.fileContent,'base64');
await fileClient.uploadData(bufferContent)
.then(()=>{fileList+=file.fileName;fileList += ";"})
.catch((error)=>{this.showError(error,"processFile")});
});
Кто-нибудь может мне помочь? Спасибо