Попробуйте сделать следующее:
function ret(ids) {
return new Promise((resolve, reject) => {
var pic;
var rootRef = firebase.database().ref().child("Report Files/" + ids)
rootRef.once('value').then(function(childs) {
childs.forEach(function (child) {
pic += '<img src="' + child.val() + '" style="display:
block;width:200px;margin-left:auto;margin-right:auto;height="200">';
resolve(pic);
});
});
});
}
Вернуть promise
из функции ret
, используйте resolve(pic)
, чтобы вернуть значение pic
, когда promise
закончится. Затем, чтобы получить значение pic
, вы можете сделать следующее:
contentString = '<div class="info-window-content">' +
ret(ids).then((result)=>{result}) + '</div>';
Метод then()
принимает до двух аргументов: функции обратного вызова для случаев успеха и ошибок Promise.
Проверьте здесь для получения дополнительной информации:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/then