У меня есть сценарий, где я переменное количество сетей на странице, и когда пользователь нажимает кнопку, мне нужно сделать следующее:Как преобразовать цикл с асинхронной операцией внутри
Для каждой сетки
- Получить некоторые данные из сетки
- Показать диалоговое окно, чтобы написать некоторые данные
- сделать операцию $ .post() после закрытия диалогового окна
- процесса следующая сетка
Вот фрагмент кода, что я делаю
for (var i = 0; i < grids.length; i++) {
var grid = grids[i];
// Process some grid's data
...
// Show a dialog box to write some extra data
dialog.open(); // dialog is a Telerik Window widget
// When the dialog box is closed do a $.post()
$.post(...)
.fail(function(error) {
})
.done(function(data) {
});
}
Проблема я столкнулся в том, что диалоговое окно открыто в асинхронном образом (я использую Telerik окна виджет для диалога) поэтому мне нужно преобразовать в цикл, чтобы сделать процесс синхронным.
Может ли кто-нибудь сказать мне, как это сделать?
спасибо.
Does 'dialog.open' вернуть какой-либо обещание? –
Нет, но здесь они показывают, как создать диалог ** через Promises ** http://docs.telerik.com/kendo-ui/controls/layout/window/how-to/confirmation-dialog-promise – vcRobe