/** * This file is part of Haketilo. * * Function: Wrapping XMLHttpRequest into a Promise. * * Copyright (C) 2021 Wojtek Kosior * Redistribution terms are gathered in the `copyright' file. */ function ajax_callback() { if (this.readyState == 4) this.resolve_callback(this); } function initiate_ajax_request(resolve, reject, method, url) { const xhttp = new XMLHttpRequest(); xhttp.resolve_callback = resolve; xhttp.onreadystatechange = ajax_callback; xhttp.open(method, url, true); try { xhttp.send(); } catch(e) { console.log(e); setTimeout(reject, 0); } } function make_ajax_request(method, url) { return new Promise((resolve, reject) => initiate_ajax_request(resolve, reject, method, url)); } /* * EXPORTS_START * EXPORT make_ajax_request * EXPORTS_END */