В настоящее время я создаю систему лицензий для своих электронных приложений. Но мне не удалось выполнить следующее:
- Пообещать пользователю запросить ввод (модуль электронной подсказки)
- Выполнить ajax-вызов на сервер сразу после
- Оценка ответа (1 \ n или 0 \ n от серверного скрипта)
Головная боль возникает при запуске вызова ajax после получения ввода userinput из приглашения (который структурирован какобещание) и фактически дождитесь его завершения.
До сих пор я пытался реструктурировать свои обещания, как таковые:
(1)
prompt().
then(ajax()).
then(evaluate()).
catch()
(2)
prompt().
then(ajax().
then(evaluate())).
catch()
В данный момент я нахожусь там, где функция ajax не возвращает ничего для передачи.
Первое - это приглашение, которое работает соответственно, возвращая свое значение.
function activeValidation(){
try{
prompt({
title: "Enter key",
label: "Enter your key",
value: "",
alwaysOnTop: true,
autoHideMenuBar: true,
inputAttrs: {
type: 'text'
},
type: "input"
})
Головная боль в этом сегменте, ajax.
.then(function(userinput){
return new Promise(function(resolve,userinput){
var req = new XMLHttpRequest();
req.onreadystatechange = function(){
if(req.readyState == 4 && req.status == 200){
resolve(req.responseText);
}
}
req.open("GET","someCGIscript?key="+userinput,true);
req.send();
}).then(function(response){
if(response == "1\n"){
runProgram();
}
else{
}
}).catch(function(e){
console.error(e);
terminate();
})});
}
catch(e){
console.log(e.name);
console.log(e.message);
terminate();
}
}
Я попытался напечатать значение Promise ajax из resolve(req.responseText);
, но в следующем сегменте возвращает неопределенное значение.
После этого я попытался реструктурировать два обещания (nи как потом первое обещание), не повезло.
Я считаю, что это вопрос правильного структурирования обещаний, но я все еще новичок в обещаниях, по крайней мере, в js:).