У меня есть рабочий пример базы в вашем коде, единственное отличие между вашим и моим - это проверка сервиса
@Injectable()
export class SearchbarService {
constructor() { }
public getSearchResults(value) {
const arr = [1,2,3,4,5,6]
return of([...arr.map(c=> Math.floor(Math.random() * 100))]); // return an observable
}
}
демонстрация stackblitz [113 ]
Я не уверен, почему Вы не хотите использовать метод, который Вы описали. Если просто с организационной точки зрения Вы не должны использовать анонимные функции
function showFirst() {
$('#first').show(800, showSecond);
}
function showSecond() {
$('#second').show(800, showThird);
}
function showThird() {
$('#third').show(800);
}
function startAnimation() {
showFirst();
}
Я только что использовал этот плагин, http://plugins.jquery.com/project/timers, на днях чтобы сделать подобную вещь. Ваша в основном итерация через все подобранные dom элементы и затем выполнение анимации каждый, когда индекс * Ваше количество миллисекунды.
Код был чем-то вроде этого:
HTML:
<div id="wrapper">
<div>These</div>
<div>Show</div>
<div>In</div>
<div>Order</div>
</div>
jQuery
$("#wrapper div").foreach( function(i) {
i = i + 1;
$(this).oneTime(800 * i, "show", function() {
$(this).show();
});
});
Проверьте документацию для Эффектов jQuery. Материал об организации очередей должен сделать то, в чем Вы нуждаетесь.