如何获取 OpenSea API
How To Fetch OpenSea API
我正在尝试获取不同的集合统计信息并使用 for 循环遍历它们以指定我要检索的集合。我想将每个集合推送到另一个数组和 return 那个集合数组。
export async function getNFTSales() {
const collections = [
'cryptopunks',
'boredapeyachtclub',
'mutant-ape-yacht-club',
];
const newNFTArray = [];
try {
Promise.all(
collections.forEach(collection => {
fetch(`https://api.opensea.io/api/v1/collection/${collection}/stats`)
.then(response => response.json())
.then(response => {
response.forEach(nftArray => {
newNFTArray.push(nftArray);
});
});
return newNFTArray;
}),
);
} catch (error) {
throw error;
}
}
从未调用 newNFTArray.push - 我一定是错过了其中一个迭代的步骤?
响应对象数组:
{
"stats": {
"one_day_volume": 560.27,
"one_day_change": -0.2779002178143809,
"one_day_sales": 8,
"one_day_average_price": 70.03375,
"seven_day_volume": 10322.029999999999,
"seven_day_change": 0.45140486499035165,
"seven_day_sales": 139,
"seven_day_average_price": 74.25920863309352,
"thirty_day_volume": 39963.36100000096,
"thirty_day_change": 0.2829772043143385,
"thirty_day_sales": 476,
"thirty_day_average_price": 83.95664075630454,
"total_volume": 767357.0922492892,
"total_sales": 18341,
"total_supply": 9999,
"count": 9999,
"num_owners": 3296,
"average_price": 41.83834536008337,
"num_reports": 7,
"market_cap": 742517.827122302,
"floor_price": null
}
}
为 Promise.all
执行返回承诺的集合映射。
export async function getNFTSales() {
const collections = [
'cryptopunks',
'boredapeyachtclub',
'mutant-ape-yacht-club',
];
try {
const promises = collections.map(collection => { // note the map
// note the return
return fetch(`https://api.opensea.io/api/v1/collection/${collection}/stats`)
.then(response => response.json());
});
results = await = Promise.all(promises);
// if each promise results in an array, results will be an array of arrays
// flat() will put all the elements of all the arrays into one (I guessed that the OP wants this)
return results.flat();
}
// note - removed catch. A catch that just throws doesn't do anything
}
来电者:
async function theCallingFunction() {
const newNFTArray = await getNFTSales();
console.log(newNFTArray);
}
我正在尝试获取不同的集合统计信息并使用 for 循环遍历它们以指定我要检索的集合。我想将每个集合推送到另一个数组和 return 那个集合数组。
export async function getNFTSales() {
const collections = [
'cryptopunks',
'boredapeyachtclub',
'mutant-ape-yacht-club',
];
const newNFTArray = [];
try {
Promise.all(
collections.forEach(collection => {
fetch(`https://api.opensea.io/api/v1/collection/${collection}/stats`)
.then(response => response.json())
.then(response => {
response.forEach(nftArray => {
newNFTArray.push(nftArray);
});
});
return newNFTArray;
}),
);
} catch (error) {
throw error;
}
}
从未调用 newNFTArray.push - 我一定是错过了其中一个迭代的步骤?
响应对象数组:
{
"stats": {
"one_day_volume": 560.27,
"one_day_change": -0.2779002178143809,
"one_day_sales": 8,
"one_day_average_price": 70.03375,
"seven_day_volume": 10322.029999999999,
"seven_day_change": 0.45140486499035165,
"seven_day_sales": 139,
"seven_day_average_price": 74.25920863309352,
"thirty_day_volume": 39963.36100000096,
"thirty_day_change": 0.2829772043143385,
"thirty_day_sales": 476,
"thirty_day_average_price": 83.95664075630454,
"total_volume": 767357.0922492892,
"total_sales": 18341,
"total_supply": 9999,
"count": 9999,
"num_owners": 3296,
"average_price": 41.83834536008337,
"num_reports": 7,
"market_cap": 742517.827122302,
"floor_price": null
}
}
为 Promise.all
执行返回承诺的集合映射。
export async function getNFTSales() {
const collections = [
'cryptopunks',
'boredapeyachtclub',
'mutant-ape-yacht-club',
];
try {
const promises = collections.map(collection => { // note the map
// note the return
return fetch(`https://api.opensea.io/api/v1/collection/${collection}/stats`)
.then(response => response.json());
});
results = await = Promise.all(promises);
// if each promise results in an array, results will be an array of arrays
// flat() will put all the elements of all the arrays into one (I guessed that the OP wants this)
return results.flat();
}
// note - removed catch. A catch that just throws doesn't do anything
}
来电者:
async function theCallingFunction() {
const newNFTArray = await getNFTSales();
console.log(newNFTArray);
}