Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Node axios

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

Matti2020

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите с проблемой Node и async.
В первой функции я получаю token из внешнего api -
const Token = function getToken(data) **
return axios(config)
.then((response) => **
this.response = response.data;
return this.response.access_token;
**)
.catch(function (error) **
console.log(error);
**);
**;
 
Затем в следующей функции я могу вывести этот token на экран -
const myToken = Token(data);
myToken.then(function (result) **
console.log(result); //тут я вижу реальный token
**);
 
Вопрос, как я мог в дальнейшем использовать этот token?
 
Попытка сделать так -
const test = myToken;
console.log(test);
выдает Promise <pending>

Всего записей: 3 | Зарегистр. 07-03-2020 | Отправлено: 22:07 18-10-2020
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Matti2020

Цитата:
выдает Promise <pending>

потому что это не значение запроса, а "обещание".
https://learn.javascript.ru/promise (для общего понимания)
 
вот когда получаете
Цитата:
result

то и используете его - назначая другой переменной или же вызывая функцию/метод с этим значением как аргументом.
 

Цитата:
как я мог в дальнейшем использовать этот token

получаете же зачем то, вот и используйте.

Всего записей: 15100 | Зарегистр. 20-09-2014 | Отправлено: 22:43 18-10-2020 | Исправлено: Mavrikii, 22:50 18-10-2020
Matti2020

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
получаете же зачем то, вот и используйте.
 

 
так вот и вопрос, как использовать или как присвоить переменной то, что я получаю?
const test = myToken; - вот так не получается

Всего записей: 3 | Зарегистр. 07-03-2020 | Отправлено: 23:07 18-10-2020
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Matti2020

Цитата:
как использовать или как присвоить переменной то, что я получаю?

var token;
myToken.then(function (result) **
 token = result;
**);
 
 
https://stackoverflow.com/questions/34392691/how-to-get-values-from-a-promise-with-node-js-without-then-function

Всего записей: 15100 | Зарегистр. 20-09-2014 | Отправлено: 02:45 19-10-2020 | Исправлено: Mavrikii, 02:45 19-10-2020
Matti2020

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
var token = '';
myToken.then(function (result) {
  token = result;
});
 
console.log(token);
 
получаем пустой token

Всего записей: 3 | Зарегистр. 07-03-2020 | Отправлено: 09:06 19-10-2020
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Matti2020

Цитата:
получаем пустой token

вы читали ссылку? ессно пустой, потому что идет асинхронный запрос.
на момент вашего console.log он еще не выполнен и значение не получено.
 
значение будет только после выполнения .then()
 
Promise позволяет выполнять асинхронную цепочку, которая не привязана к последовательному выполнению кода.
поэтому token будет непустой только после выполнения Promise

Всего записей: 15100 | Зарегистр. 20-09-2014 | Отправлено: 09:43 19-10-2020 | Исправлено: Mavrikii, 09:45 19-10-2020
Samovarov



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Matti2020

Цитата:
получаем пустой token

Твой token должен обрабатываться в операторе then()
 

Всего записей: 357 | Зарегистр. 20-03-2002 | Отправлено: 21:10 26-10-2020
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » Node axios


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru