@maksam07

Как вернуть результат, который вложен в несколько функций?

Начну сразу с примера т.к. устал разбираться со всем этим...
Есть такая функция:
function toDataURL(url, callback) {
	var xhr = new XMLHttpRequest();
	xhr.onload = function() {
		var reader = new FileReader();
		reader.onloadend = function() {
			callback(reader.result);
		}
		reader.readAsDataURL(xhr.response);
	};
	xhr.open('GET', url);
	xhr.responseType = 'blob';
	xhr.send();
}

и работает она примерно так:
toDataURL( "url/img.png", function(dataUrl) {
	console.log('RESULT:', dataUrl)
})

Но хочу, что бы она работала так:
var res = toDataURL( "url/img.png" );

Если хотите спросить почему, то..
Я использую функции в ассоциативном массиве:
var go = {
	arrTask: {},
	create: function(){
		this.arrTask["status"] = 1;
		this.arrTask["res"] = res;
		return arrTask;
	}
};

ну и соотв. обрабатывать их как-то так:
var goVar = go.create();
alert( goVar.res );

Вроде бы все описал. Буду очень признателен за какое-либо решение. Ибо много времени уже потратил именно на эту задачу. С остальным вроде проблем не было.
  • Вопрос задан
  • 134 просмотра
Пригласить эксперта
Ответы на вопрос 1
dummyman
@dummyman
диссидент-схизматик
Конкретно так, как вы хотите не получится. Но именно эту задачу решают промисы.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы