Javascript-форум (https://javascript.ru/forum/)
-   Node.JS (https://javascript.ru/forum/node-js-io-js/)
-   -   Ответ от API приходит позже отработки кода (https://javascript.ru/forum/node-js-io-js/81647-otvet-ot-api-prikhodit-pozzhe-otrabotki-koda.html)

klinge 04.01.2021 14:09

Ответ от API приходит позже отработки кода
 
Добрый день
Столкнулся с проблемой, что при вызове API его ответ приходит позже отработки кода и в ответе получаю undefined.

Для этого к меня 2 файла start.js и api.js.

В start.js я вызываю api.js и жду ответ:
const api = require("./api");
const result = api.users();
console.log(`result: ${result}`);

В api.js я вызываю само тестовое api:
const request = require('request');

module.exports = {
users: function () {
request.post({
url: "https://reqres.in/api/register",
json: true,
body: {
"email": "eve.holt@reqres.in",
"password": "pistol"
},
headers: {'User-Agent': 'request'}
}, (err, res, data) => {
if (err) {
console.log('Error: ', err);
return err;

} else if (res.statusCode !== 200) {
console.log('Status: ', res.statusCode);
return `Status: ${res.statusCode}`;

} else {
console.log(`Success: ${JSON.stringify(data)}`);
return data;
}
});
},
};

Подскажите пожалуйста, как настроить вызов, что бы в start.js команда console.log(`result: ${result}`) отработала после после ответа от api.js?


Часовой пояс GMT +3, время: 16:25.