reactjs - FB API 获取值之外的变量返回未定义
问题描述
我正在尝试在 FB API 中循环 URL,以便我可以检索所有照片而无需对其进行分页(用于照片搜索),但是当我尝试定义“之后”的值时,它总是返回未定义。这是代码:
let next;
for (let ctr=0; ctr<albumcount; ctr++) {
let url = '';
if (ctr>0) {
console.log(ctr, next)
url = `https://graph.facebook.com/v3.2/${val}?fields=photos.limit(100)%7Bimages%2Cname%2Clink%7D&after=${next}&access_token=${access_token}`;
} else {
url = `https://graph.facebook.com/v3.2/${val}?fields=photos.limit(100)%7Bimages%2Cname%2Clink%7D&access_token=${access_token}`;
}
fetch(url)
.then(results => {
return results.json();
}).then(data => {
next = data.photos.paging.cursors.after;
});
}
我一直在尝试多种事情,但“下一个”总是返回未定义。如何返回“下一个”的值。
提前致谢。
解决方案
fetch/AJAX 是异步的。因此,在您到达第一个 fetch 回调之前,整个循环将完全完成。您可以为此使用递归函数,或者(甚至更好)async/await
:
let result = await fetch(url);
此外,您不应将专辑计数用于循环 - 只要响应中有“下一个”链接即可循环。
推荐阅读
- flutter - Flutter/dart 中的 openssl_public_encrypt()
- html - 如何在徽标旁边浮动图像?
- arrays - 如何在逗号后打印没有空格的数组
- r - 按最近的日期和 ID 合并两个数据框
- c++ - 将值从指针复制到常量对象参数
- java - 将字节传递给采用 UInt8 (Java) 的方法
- php - ASCII 转换器显示空白,输入错误 - PHP
- cvxpy - 使用 CVXPY 和 DCCP 进行斜坡最小二乘估计
- javascript - discord.js 机器人在本地工作,但不在 Heroku 上
- c - 为什么 snprintf 复制不同的值,即使每次都将相同的变量复制到字符串数组