Вы используете .then / .catch как часть определения функции - что не имеет смысла. Эти конструкции должны использоваться как часть выполнения функции.
Определите вашу функцию следующим образом:
let req = (url) => new Promise((resolve, reject) => {
var options = {
'method': 'GET',
'url': url,
'headers': {
'Content-Type': 'application/json'
}
}
request(options, function (error, response) {
if (error) {
reject(error)
} else {
resolve(response.body)
}
})
})
Затем, во время выполнения, вы делаете это:
let getAllData = async (url) => {
var endpoint = `${url}?apikey=${settings.api_key}`
let res = await req(endpoint)
console.log('run after request')
console.log(res) // should give response.body
}
ИЛИ вы делаете это:
let getAllData = async (url) => {
return new Promise((resolve, reject) => {
var endpoint = `${url}?apikey=${settings.api_key}`
req(endpoint)
.then(res => {
console.log('run after request')
console.log(res) // should give response.body
resolve(res)
})
.catch(err => {
console.error(err)
reject(err)
})
})
}
По сути, определите функцию и затем ... либо вызовите ее с синтаксисом async / await, либо с синтаксисом .then / .catch в стиле обещания.