У меня есть простая веб-страница, которую я использую для отправки ввода текста на сервер XML RPC Я получил код, работающий в Javascript, но теперь я пытаюсь преобразовать его в Typescript и использую обещания с async / await. Это как учебный эксперимент. На моем нынешнем уровне опыта это будет немного сложно.
Предыдущий рабочий код Javascript:
import "./mimic.js";
function makeComment() {
const method = "MakeComm";
let request = new XmlRpcRequest("http://localhost:1337/RPC2", method);
request.addParam(document.getElementById("n1")).value;
request.addParam(document.getElementById("n2")).value;
let response = request.send();
console.log(response);
}
Как я уже говорил выше, эта функция правильно взаимодействует с сервером RPC XML. Вот мой преобразованный код Typescript:
import "./mimic.js";
const updateCommentBtn: HTMLButtonElement = document.getElementById(
'makeComment',) as HTMLButtonElement;
updateCommentBtn.addEventListener('click', async () => {
const method = "MakeComm";
let request:any = new XmlRpcRequest("http://localhost:1337/RPC2", method);
request.addParam(<HTMLInputElement>document.getElementById("n1")).value;
request.addParam(<HTMLInputElement>document.getElementById("n2")).value;
let response = await request.send();
console.log(response);
});
Я получаю сообщение об ошибке:
Uncaught (in promise) ReferenceError: XmlRpcRequest is not defined
at Object.<anonymous> (fileChange.ts:36)
at new Promise (<anonymous>)
at HTMLButtonElement.<anonymous> (fileChange.ts:34)
Вызов XmlRpcRequest - это функция, содержащаяся в ./mimic.js.
Мой HTML для версии Typescript:
<p>Make Comment:</p>
<input type="text" id="n1"/>
<input type="text" id="n2"/>
<button id="makeComment">Update Comment</button>
EDIT:
mimic.js определяет XmlRpcRequest следующим образом:
function XmlRpcRequest(url, method) {
this.serviceUrl = url;
this.methodName = method;
this.crossDomain = false;
this.withCredentials = false;
this.params = [];
this.headers = {};
};