Как можно вернуться из замыкания, не возвращаясь из содержащей функции?
В следующей функции оператор return
фактически возвращает из GM_xmlhttpRequest
: не замыкание.Естественно, я вижу, что мог бы расположить свой код так, чтобы выполнение заканчивалось в конце замыкания, но мне любопытно, как можно досрочно вернуться в этом примере.
function GM_xmlhttpRequest(details, callback) {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState != 4)
return; // <-- zomg returns from parent function wtf
if (xhr.status != 200)
callback(null);
callback(xhr);
}
xhr.open('GET', details.url, true);
xhr.send();
};