Я пишу угловое приложение, и Угловое очень упрямо относится к разрыву проблем.Функция обратного вызова после назначения
У меня есть контроллер и служба, и я не хочу, чтобы мой код прерывал разделение проблем.
В моем контроллере я пытаюсь получить данные из веб-службы, а затем все другие веб-службы с данными, полученными от первого - и из-за асинхронного характера javascript я не могу найти хороший способ сделать это без пересекая линию с точки зрения разделения проблем.
Вот jsfiddle, который показывает его:
Теперь имейте в виду, что я пытаюсь найти элегантное решение, которое не нарушает SoC - не грязный хак, чтобы заставить его работать.
//controller
var x = fn1();
var y = fn2(x);
alert(y);
//service
function fn1(){
setTimeout(function(){
return '123'; //web request example
}, 1000);
}
function fn2(code){
return 'asdfb' + code;
}
Удивительный ответ спасибо – Jamesla
Рад, что помог (у). –