求助作用域问题
```do {
GM_xmlhttpRequest({
url: FULL_URL,
method: "GET",
headers: getHeaders(),
onload: function (xhr) {
let data = JSON.parse(xhr.responseText);
PAGE += 1;
setTimeout(() => {
data.data.forEach(arr => {
const avatar = arr.userInfo.userAvatar;
const time = new Date(arr.dateline * 1000);
const content = arr.message;
const username = arr.username;
$('#feed-detail').append(replyArea);
})
}, 1000);
}
});
} while (data.data.length != 0);
```
如上,请问哥哥们,怎么才能在循环里访问`data`。
通过ajax请求的结果要怎么返回出来存在外面的变量😭 [油猴脚本开发指南]包装异步代码为同步代码
https://bbs.tampermonkey.net.cn/thread-883-1-1.html Wandering 发表于 2023-2-5 13:30
` Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'data')`
data...
GM_xhr是异步的,没法用do while来重复请求
可以把GM_xhr这个请求包装成一个函数
在onload里面判断length,不符合要求就再调用这个函数直到符合要求 ```
let data;
do {
GM_xmlhttpRequest({
url: FULL_URL,
method: "GET",
headers: getHeaders(),
onload: function (xhr) {
data = JSON.parse(xhr.responseText);
PAGE += 1;
setTimeout(() => {
data.data.forEach(arr => {
const avatar = arr.userInfo.userAvatar;
const time = new Date(arr.dateline * 1000);
const content = arr.message;
const username = arr.username;
$('#feed-detail').append(replyArea);
})
}, 1000);
}
});
} while (data.data.length != 0);
```
在外部声明就行了 steven026 发表于 2023-2-5 13:17
```
let data;
do {
` Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'data')`
data 还是未定义😵
我想通过请求获得一个array对象,如果长度不为0就继续请求。哥哥有什么好的实现方法吗 steven026 发表于 2023-2-5 13:17
```
let data;
do {
抓到哥哥偷懒了!
这次答案不干净 李恒道 发表于 2023-2-5 13:31
抓到哥哥偷懒了!
这次答案不干净
具体逻辑我看都没看……🙄
页:
[1]