gpt4 book ai didi

javascript - 如何监听请求完成事件?或者如何取回响应对象

转载 作者:行者123 更新时间:2023-11-27 23:26:20 27 4
gpt4 key购买 nike

我对 Firefox 扩展和 javascript 完全陌生。我有这样的东西:

var json = JSON.parse(links);
for (var i = 0; i < json.length; i++) {
var link = json[i];
Request({
url: link.url,
onComplete: function (response) {
console.log(response.status);
}
}).get();
}

现在我需要根据响应对象的状态执行某些操作。但我想继续我的 for 循环,因为我需要该链接对象...

在请求 https://developer.mozilla.org/en-US/Add-ons/SDK/High-Level_APIs/request 的文档页面上提到了“完整”事件,该事件在返回响应后发出,但我真的不知道如何监听这样的事件。

我真的不知道如何解决这个问题,但这是我需要的结果:

var json = JSON.parse(links);
for (var i = 0; i < json.length; i++) {
var link = json[i];
Request({
url: link.url,
onComplete: function (response) {
// something
}
}).get();
// I need RESPONSE object here
if(response.status == 404) {
// do something with link object
}
}

最佳答案

onComplete 是异步调用的。对于此类情况,您需要“保存”对 closure 中链接对象的引用。 .

var fetchAndProcess = function(link) {
Request({
url: link.url,
onComplete: function(response) {
if (response.status == 404) {
console.log(link); // 'saved' in fetchAndProcess
// do something with link object
}
}
}).get();
};

var json = JSON.parse(links);
for (var link of json) {
fetchAndProcess(link);
}

关于javascript - 如何监听请求完成事件?或者如何取回响应对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34937031/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com