如何将结果映射到来自函数调用的承诺中
How to map a result in a promise that comes from a function call
我有这个函数 returns 来自 API 中的 GET 的结果(我正在使用 AWS Rest API,用于上下文化):
const listUsers = async () => {
const apiName = 'AdminQueries'
const path = '/listUsers'
const params = {
headers: {
'Content-Type': 'application/json',
Authorization: `${(await Auth.currentSession())
.getAccessToken()
.getJwtToken()}`,
},
}
return await API.get(apiName, path, params)
}
如果我调用该函数在控制台上打印,例如:
console.log(listUsers())
我的控制台上有一个数组:
Promise {<pending>}
__proto__: Promise
[[PromiseState]]: "fulfilled"
[[PromiseResult]]: Object
Users: Array(42)
0: {Username: "00e534e3-08ee-4bc1-9d19-ab18208e3f94", Attributes: Array(5), UserCreateDate: "2021-09-06T10:05:35.537Z", UserLastModifiedDate: "2021-09-06T10:05:35.537Z", Enabled: true, …}
1: {Username: "05f4ce2e-4b57-48d5-9f5f-e18d250aefb4", Attributes: Array(6), UserCreateDate: "2021-09-10T19:45:32.002Z", UserLastModifiedDate: "2021-09-10T19:54:37.333Z", Enabled: true, …}
2: {Username: "06a78cc7-af6a-4fb6-975d-458c089b69a5", Attributes: Array(6), UserCreateDate: "2021-09-10T18:04:27.780Z", UserLastModifiedDate: "2021-09-10T18:04:27.780Z", Enabled: true, …}
3: {Username: "32652d77-e7a4-444a-9995-f8f50eb14633", Attributes: Array(6), UserCreateDate: "2021-09-06T15:48:24.897Z", UserLastModifiedDate: "2021-09-06T15:49:39.476Z", Enabled: true, …}
length: 42
__proto__: Array(0)
__proto__: Object
如何映射这些用户以显示在数组中?我试过了但是不行。
您的 listUsers 函数正在返回一个承诺。要获得响应,您可以使用类似这样的东西
const listUsers = async () => {
const apiName = 'AdminQueries'
const path = '/listUsers'
const params = {
headers: {
'Content-Type': 'application/json',
Authorization: `${(await Auth.currentSession())
.getAccessToken()
.getJwtToken()}`,
},
}
return await API.get(apiName, path, params)
}
**** update ****
const func = async () => {
const response = await listUsers();
console.log(response);
}
func();
const listUsers = async () => {
const apiName = 'AdminQueries'
const path = '/listUsers'
const params = {
headers: {
'Content-Type': 'application/json',
Authorization: `${(await Auth.currentSession())
.getAccessToken()
.getJwtToken()}`,
},
}
return await API.get(apiName, path, params)
}
const func = async () => {
const response = await listUsers();
reponse.data?.map((item) => {
console.log(item);
})
}
我有这个函数 returns 来自 API 中的 GET 的结果(我正在使用 AWS Rest API,用于上下文化):
const listUsers = async () => {
const apiName = 'AdminQueries'
const path = '/listUsers'
const params = {
headers: {
'Content-Type': 'application/json',
Authorization: `${(await Auth.currentSession())
.getAccessToken()
.getJwtToken()}`,
},
}
return await API.get(apiName, path, params)
}
如果我调用该函数在控制台上打印,例如:
console.log(listUsers())
我的控制台上有一个数组:
Promise {<pending>}
__proto__: Promise
[[PromiseState]]: "fulfilled"
[[PromiseResult]]: Object
Users: Array(42)
0: {Username: "00e534e3-08ee-4bc1-9d19-ab18208e3f94", Attributes: Array(5), UserCreateDate: "2021-09-06T10:05:35.537Z", UserLastModifiedDate: "2021-09-06T10:05:35.537Z", Enabled: true, …}
1: {Username: "05f4ce2e-4b57-48d5-9f5f-e18d250aefb4", Attributes: Array(6), UserCreateDate: "2021-09-10T19:45:32.002Z", UserLastModifiedDate: "2021-09-10T19:54:37.333Z", Enabled: true, …}
2: {Username: "06a78cc7-af6a-4fb6-975d-458c089b69a5", Attributes: Array(6), UserCreateDate: "2021-09-10T18:04:27.780Z", UserLastModifiedDate: "2021-09-10T18:04:27.780Z", Enabled: true, …}
3: {Username: "32652d77-e7a4-444a-9995-f8f50eb14633", Attributes: Array(6), UserCreateDate: "2021-09-06T15:48:24.897Z", UserLastModifiedDate: "2021-09-06T15:49:39.476Z", Enabled: true, …}
length: 42
__proto__: Array(0)
__proto__: Object
如何映射这些用户以显示在数组中?我试过了但是不行。
您的 listUsers 函数正在返回一个承诺。要获得响应,您可以使用类似这样的东西
const listUsers = async () => {
const apiName = 'AdminQueries'
const path = '/listUsers'
const params = {
headers: {
'Content-Type': 'application/json',
Authorization: `${(await Auth.currentSession())
.getAccessToken()
.getJwtToken()}`,
},
}
return await API.get(apiName, path, params)
}
**** update ****
const func = async () => {
const response = await listUsers();
console.log(response);
}
func();
const listUsers = async () => {
const apiName = 'AdminQueries'
const path = '/listUsers'
const params = {
headers: {
'Content-Type': 'application/json',
Authorization: `${(await Auth.currentSession())
.getAccessToken()
.getJwtToken()}`,
},
}
return await API.get(apiName, path, params)
}
const func = async () => {
const response = await listUsers();
reponse.data?.map((item) => {
console.log(item);
})
}