如何从闭包中返回,而不从包含函数返回?
在下面的函数中,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();
};
{
,;
等)而出现问题,否则这绝不正确。你知道GM_xmlhttpRequest
一旦被调用就会立即运行和完成,对吗? - lincolnk