, поэтому Im в настоящее время работает над программой, которая работает с api.JavaScript - Невозможно получить данные из функции onload (http-запрос)
У меня есть две функции атм:
getBotID()
function getBotID(domain) {
var url = "http://" + domain + ":8087/api/v1/botId";
idRequest.open("GET", url);
idRequest.onload = function() {
var botID = JSON.parse(idRequest.responseText);
};
idRequest.send();
}
и getAuth()
function getAuth(domain, user, pass) {
getBotID(domain);
var url = "http://" + domain + ":8087/api/v1/bot/login";
body = '{"username": ' + user + ', "password": ' + pass + ', "botId": ' + botID + '}';
authRequest.open("POST", url);
authRequest.setRequestHeader("Content-Type", "application/json");
authRequest.onload = function() {
var authToken = JSON.parse(authRequest.responseText);
};
authRequest.send(JSON.stringify(body));
}
Я должен получить botID прежде, чем я могу попытаться получить новый AuthToken поэтому я немедленно вызываю getBotID() в функции getAuth().
Моя проблема: я не могу получить botID вне функции OnLoad() запроса HTTP в getBotID(), так как он будет работать так:
- начала getAuth()
- начать getBotID()
- отделка getBotID()
- отделка getAuth()
- И ТЕПЕРЬ закончить функцию OnLoad в getBotID() ...
Я просто не могу получить данные BotID из функции onload. Я уже пробовал вам функцию обратного вызова, но это не сработало.
Вы не можете этого сделать. Вы должны использовать обещания. – SLaks
Не создавайте JSON вручную. Используйте 'JSON.stringify'. – SLaks
@SLaks Вы имеете в виду переменную тела? – redii