是否可以循环遍历 API,打印单独的结果,然后将它们组合成一个变量?
Is it possible to loop through an API, print separate results, and then combine them into a single variable?
我正在尝试阅读多个 Reddit post 的观点。我有使用 6 API 次调用的想法,但我认为我们可以将其重构为 2 次调用。
我正在撞墙 - 是否可以循环遍历多个 APIs(我们正在废弃的每个 Reddit post 一个循环),打印结果,然后添加它们变成一个单一的变量?
最后一部分是我卡住的地方。在 API 循环之后,我得到了每个循环的单独输出,我不知道如何将它们添加到一个变量中......
下面是代码的简单版本:
import React, { useState, useEffect } from 'react';
function App() {
const [testRedditComments, setTestRedditComments] = useState([]);
const URLs = [
'https://www.reddit.com/r/SEO/comments/tepprk/is_ahrefs_worth_it/',
'https://www.reddit.com/r/juststart/comments/jvs0d1/is_ahrefs_worth_it_with_these_features/',
];
useEffect(() => {
URLs.forEach((URL) => {
fetch(URL + '.json').then((res) => {
res.json().then((data) => {
if (data != null) setTestRedditComments(data[1].data.children);
});
});
});
}, []);
//This below finds the reddit comments and puts them into an array
const testCommentsArr = testRedditComments.map(
(comments) => comments.data.body
);
//This below takes the reddit comments and terns them into a string.
const testCommentsArrToString = testCommentsArr.join(' ');
console.log(testCommentsArrToString);
我尝试了多种方法来将字符串加在一起,但我已经浪费了很多时间。任何人都知道这是如何工作的。或者有更简单的方法来完成这个吗?
感谢您抽出时间,如果您需要任何说明,请告诉我。
-乔希
const URLs = [
"https://www.reddit.com/r/SEO/comments/tepprk/is_ahrefs_worth_it/",
"https://www.reddit.com/r/juststart/comments/jvs0d1/is_ahrefs_worth_it_with_these_features/",
];
Promise.all(
URLs.map(async (url) => {
const resp = await fetch(url + ".json");
return resp.json();
})
).then((res) => console.log(res));
我已经使用 Promise.all
并得到了响应并附加了一个具有相同响应的沙箱。
根据您的要求,您可以使用状态值,也可以在将其设置为状态之前准备好您的 api 响应。
我正在尝试阅读多个 Reddit post 的观点。我有使用 6 API 次调用的想法,但我认为我们可以将其重构为 2 次调用。
我正在撞墙 - 是否可以循环遍历多个 APIs(我们正在废弃的每个 Reddit post 一个循环),打印结果,然后添加它们变成一个单一的变量?
最后一部分是我卡住的地方。在 API 循环之后,我得到了每个循环的单独输出,我不知道如何将它们添加到一个变量中......
下面是代码的简单版本:
import React, { useState, useEffect } from 'react';
function App() {
const [testRedditComments, setTestRedditComments] = useState([]);
const URLs = [
'https://www.reddit.com/r/SEO/comments/tepprk/is_ahrefs_worth_it/',
'https://www.reddit.com/r/juststart/comments/jvs0d1/is_ahrefs_worth_it_with_these_features/',
];
useEffect(() => {
URLs.forEach((URL) => {
fetch(URL + '.json').then((res) => {
res.json().then((data) => {
if (data != null) setTestRedditComments(data[1].data.children);
});
});
});
}, []);
//This below finds the reddit comments and puts them into an array
const testCommentsArr = testRedditComments.map(
(comments) => comments.data.body
);
//This below takes the reddit comments and terns them into a string.
const testCommentsArrToString = testCommentsArr.join(' ');
console.log(testCommentsArrToString);
我尝试了多种方法来将字符串加在一起,但我已经浪费了很多时间。任何人都知道这是如何工作的。或者有更简单的方法来完成这个吗?
感谢您抽出时间,如果您需要任何说明,请告诉我。
-乔希
const URLs = [
"https://www.reddit.com/r/SEO/comments/tepprk/is_ahrefs_worth_it/",
"https://www.reddit.com/r/juststart/comments/jvs0d1/is_ahrefs_worth_it_with_these_features/",
];
Promise.all(
URLs.map(async (url) => {
const resp = await fetch(url + ".json");
return resp.json();
})
).then((res) => console.log(res));
我已经使用 Promise.all
并得到了响应并附加了一个具有相同响应的沙箱。
根据您的要求,您可以使用状态值,也可以在将其设置为状态之前准备好您的 api 响应。