@SideWest
Python.Новичок

JS. Как поменять внешнее значение внутри промиса?

Я в цикле посылаю запрос к вк, в каждом новом запросе мне нужно указывать параметр, полученный из предыдущего, пожалуйста подскажите, как такое реализовать?

setInterval(async function(glob_ts) {
    p1 = new Promise((resolve) => {
        request.post({
            url: server['server'],
            qs: {
                access_token: TOKEN,
                v: '5.101',
                'act': 'a_check',
                'key': server['key'],
                'ts': tsi,   // Вот это при каждом запросе должно быть новое
                'wait': 25
            }
        }, (err, response, body) => {
            JSON.parse(body)['response'] ? resolve(JSON.parse(body)['response']) : resolve(JSON.parse(body));
        });
    });
    p1.then(function(value) {
        console.log(value);
        return value
    });

    p1.then(function(value) {
        tsi = value['ts']  // Вот это не меняет значение глобальной переменной
    });

}, 1)
  • Вопрос задан
  • 81 просмотр
Решения вопроса 1
@StockholmSyndrome
ну и жесть вы понаписали, вам нужна просто реализация запросов к лонгполлу?
никаких setInterval'ов не нужно, отправлять новый запрос нужно после завершения предыдущего
function getData(ts) {
  request.post({
    url: server['server'],
    qs: {
      access_token: TOKEN,
      v: '5.101',
      act: 'a_check',
      key: server['key'],
      ts: ts,  
      wait: 25
    }
  }, (err, response, body) => {
    const data = JSON.parse(body);
    getData(data.ts);
    // handle data
  });
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы