Не возвращает return

221
15 марта 2018, 11:52

Не могу понять, почему если через console.log, то вижу данные, а если через return то ничего не приходит. Помогите разобраться.

function ItemsPriceList() {
request(`http://api.csgo.steamlytics.xyz/v1/items/popular?key=14a71e5341037ffa4ea94067189e9db7`, (error, response, body) => {
return body
})
}
ItemsPriceList()
Answer 1

В данном случае,return возвращает значение из коллбэка, передаваемого параметром в функцию request, а вовсе не из функции ItemsPriceList.
Сама функция ItemsPriceList возвращает undefined просто потому, что в ней оператор return не используется.

Так как обратный вызов в request выполняется асинхронно - возвращать body необходимо так же асинхронно: либо передавая параметром во внешнюю callback-функцию, либо возвращая из ItemsPriceList() экземпляр Promise (с передачей body параметром в resolve).

Answer 2

Ваша функция корректно возвращает body, вы просто ничего с ним не делаете.
Также, не совсем понятно, в каком формате вы хотите получить эти данные.
Отобразить на html странице или обработать их в будущем, например, специфичный поиск и последующий вывод?
Если банально вывести на экран, то посмотрите эти output js команды https://www.w3schools.com/js/js_output.asp

READ ALSO
Не могу regex'ом на Javascript'e удалить внутренний style

Не могу regex'ом на Javascript'e удалить внутренний style

При копировании текста с Вордовского документа и последующей вставке в html-элемент с contenteditable="true" получаю внутренний стиль вида:

224
pug — dynamic inclusion

pug — dynamic inclusion

Всем доброго времени суток!

188
Почему оператор delete не удаляет локальную переменную внутри функции?

Почему оператор delete не удаляет локальную переменную внутри функции?

Вопрос в следующем - почему x не удаляется, ведь оно является свойством arguments?

215