从API javascript获取的映射项



我正在尝试使用带有javascript的类和构造函数映射从API返回给我的一些项。

我的问题是我做错了什么,因为映射之前的日志";映射之前的结果";注销我的项目阵列。但在我的映射之后,我什么也得不到,构造函数中的所有内容都是未定义的。

class Test {
constructor(obj) {
this.testValue = obj.testValue
}
}
async function getItems() {
const promises = []
const response = (await fetch(url)).json()
promises.push(response)
const result = await Promise.all(promises)
console.log('Result before Map:', result)
const tests = result.map(test => new Test(test))
console.log('Result after Map:', tests)
}

你有太多的"等待";在里面。

async function getItems() {
const promises = []
promises.push(fetch(url));
const result = await Promise.all(promises)
.map((r) => r.json());
console.log('Result before Map:', result)
const tests = result.map((t) => new Test(t))
console.log('Result after Map:', tests)
}

问题是";url";来自。目前没有对url的引用,即使是,它也只是一个url。也许你正在寻找这样的东西:

async function getItems(urls) {
const promises = urls.map((u) => fetch(u));
const result = await Promise.all(promises)
.map((r) => r.json());
console.log('Result before Map:', result)
const tests = result.map((t) => new Test(t))
console.log('Result after Map:', tests)
}

如果只有一个url,它将只是

async function getItem(url) {
const result = await fetch(url);
const resJSON = result.json()
console.log('Result before Map:', resJSON)
const test = new Test(resJSON);
console.log('Result after Map:', test)
}

最新更新