Да, нужен setTimeout, что пользователям не нужно было делать done