Задать вопрос
@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 );

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

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

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
div. Ставрополь
от 40 000 до 90 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽