В родительском компоненте, я следующее:Как обеспечить ребенку компонент вызывает родительскую функцию после Ember.run.later завершается в Эмбер
.
.
.
recurringFunc: function(delay, index){
.
.
.
if (someFlag){
Ember.run.later(_this, function() {
_this.send('otherFunc',{index: index});
_this.send('recurringFunc', delay, ++index);
}, delay);
}
},
otherFunc: function(somePara){
.
.
.
}
В родительском шаблоне я следующее:
.
.
.
{{template-name someFlag=someFlag}}
.
.
.
Тогда в детском componoent у меня есть следующие:
input: function(){
this.set('someFlag', false);
this.sendAction('otherFunc', {index: someVal});
}
Когда действие, если уволен из дочерний компонент, он успешно, изменяет someFlag в родительском. Но код не дождался последней итерациив родительском для запуска, прежде чем он выполнит вызов otherFunc, который был инициирован из дочернего.
У меня есть другой код, который я сократил, что зависит от otherFunc, запущенного после последней итерации Ember.run.later.
Как вызвать функцию родительского компонента из дочернего компонента и убедиться, что Ember.run.later закончен до того, как вызывается дочерняя функция?
Что это связано с асинхронным ожиданием? Вы даже используете ES8? Какие функции возвращают обещания? – Bergi
Извините. Я думал, что асинхронное ожидание означает что-то еще. Я удалю этот тег. – user2517182