я получил класс машинопись с атрибутом, который содержит некоторые данные соединения, которые являются результатом вызова Ajax, вот фрагмент кода:Машинопись Последовательность методов класса
class User {
// ... other stuff (constructor, attributes, methods)
static data:{id:number; token:string} = {id: 0, token: ""};
connect() {
// Ajax Call
.done(function(e){
User.data.id = e.id;
User.data.token = e.token;
})
}
request() {
if(User.data.id == 0)
setTimeout(() => {
this.request();
}, 500);
else return '?id=' + User.data.id + '&token=' + User.data.token;
}
}
Я пытался использовать connect()
и впоследствии request()
но иногда функция request() запускается перед ответом ajax. Теперь я пытаюсь написать функцию request()
с некоторым временем ожидания и своего рода рекурсией. К сожалению, это не работает. Моя цель - вызвать функцию request()
и получить строку только тогда, когда готовы «id» и «токен» (а не 0 и пустая строка). Любое предложение будет оценено!
PS: Я не могу поставить функцию request()
внутри AJAX обратного вызова: две функции должны быть разделены
Tnx для вашего ответа, я буду углубленно изучать эти аргументы. В вашем коде каждый запрос попытается дождаться, пока соединение будет разрешено, но это не хорошо для меня, потому что в моем коде мне нужна возможность сделать несколько «request()» только с одним начальным соединением, и проблема только с первый запрос (иногда данные подключения к нему не готовы). – Plastic
@Plastic: я добавлю дополнительные опции, в частности, исходя из вашего желания повторно использовать соединение. –
Огромное вам спасибо, моя первая цель - узнать что-то полезное;) – Plastic