MrTheFirst
@MrTheFirst
front-end разработчик

Как грамотно переписать collback на promise?

Имеются функции с похожим содержимым. Отправляется запрос через rest api битрикс24, получаем данные, обрабатываем, записываем....
Сейчас в каждой такой функции ставлю флаг, если все они true, то запускается функция finishInstall, которая собирает все данные, полученные пред. функциями (похожи на у, что в примере).

Как переделать эту схему на promise? Уж очень много callback'ов и флагов стало...
application.prototype.getUsers = function () {
    BX24.callMethod('user.get', {sort:'ID',order:'ASC'}, function(result) {
        
        if(result.error()) {
           // ошибки
        }
        else {
            // записываю результаты в массив
            if(result.more()) {  // result ограничен в 50 записей
                result.next(); // показать след. 50
            }
            else {
                // конец
               // тут сейчас флаги this.appLoadedKeys['user-list'].loaded = true;
              this.isDataLoaded();
            }
        }
    });
};


Только познаю JS:)
Спасибо!
  • Вопрос задан
  • 389 просмотров
Пригласить эксперта
Ответы на вопрос 1
abyrkov
@abyrkov
JavaScripter
Дока:
https://learn.javascript.ru/promise
https://developer.mozilla.org/ru/docs/Web/JavaScri...
Пример:
promiseFunction = (resolve, reject) => setTimeout(resolve, 100);
var promise = new Promise(promiseFunction);
promise
  .then(promiseFunction)
  .then(promiseFunction)
  ...


Как именно в вашем случая - без уточнений не написать.

P.S. Лучше сначала выучить, потом вопросы задавать xD
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы