Я пытаюсь выполнить функцию загрузки файла в IPFS, которая возвращает строку URL-адреса, в которой находится файл. Но я не могу заставить его вернуть это. Я пытался использовать var и window для объявления переменной, но она всегда возвращает undefined. Также определяли enlace вне функции, но все равно она всегда объявляла undefined. Это как не обновлять значение вне функции. В качестве журнала консоли после него выведите URL. (и да, я знаю, что есть какой-то мусорный код, я пытался отладить проблему)
function upload() {
const reader = new FileReader();
reader.onloadend = function() {
const ipfs = window.IpfsApi('localhost', 5001) // Connect to IPFS
const buf = buffer.Buffer(reader.result) // Convert data into buffer
ipfs.files.add(buf, (err, result) => { // Upload buffer to IPFS
if(err) {
console.error(err)
return
}
window.enlace = `http://127.0.0.1:8080/ipfs/${result[0].hash}`
console.log(`Url --> ${enlace}`)
console.log(typeof enlace)
//document.getElementById("url").innerHTML= url
//document.getElementById("url").href= url
//document.getElementById("output").src = url
})
}
const photo = document.getElementById("photo");
reader.readAsArrayBuffer(photo.files[0]); // Read Provided File
return window.enlace;
}