获得正确的数据,但不是我期望的数据
Getting the right data but not where I expect it to be
我的代码正在运行。但我很确定有一种更简单的方法可以做到这一点。现在的方式是,我可以通过访问我的 Promise 中的“_v”键来获得我需要的结果。这就是为什么我认为我做错了什么。这是代码:
file1.js
import * as Utils from '../js/utils';
albumsArray() {
this.albums = Utils.getAlbums(this.user, this.token);
}
utils.js
export async function getAlbums(user, token){
let store = []
let data = await axios.get(`https://api.imgur.com/3/account/${user}/albums/`, {
headers: {
Authorization: `Bearer ${token}`,
Accept: 'application/json'
}
})
.then(response => {
response.data.data.map( data => store.push(data))
})
return store || [];
}
所以,现在这样,我在相册['_v']中得到了我想要的结果。
Obs: albums(this.albums) 是我登录时的一个承诺,而 _v 是我需要的数据所在的关键。我做错了什么。我怎样才能让我的代码看起来更好?
谢谢
async/await 最酷的一点是你得到的是实际价值而不是承诺......你可以这样做:
export async function getAlbums(user, token){
let response = await axios.get(`https://api.imgur.com/3/account/${user}/albums/`, {
headers: {
Authorization: `Bearer ${token}`,
Accept: 'application/json'
}
})
return response.data.data || [];
}
您正在将 response.data.data 中的所有内容都推入商店...为什么不 return response.data.data 本身?
那么 file1.js 也应该使用 async/await 这样你就得到了数组而不是 promise...
async albumsArray() {
this.albums = await Utils.getAlbums(this.user, this.token);
}
有道理吗?
我的代码正在运行。但我很确定有一种更简单的方法可以做到这一点。现在的方式是,我可以通过访问我的 Promise 中的“_v”键来获得我需要的结果。这就是为什么我认为我做错了什么。这是代码:
file1.js
import * as Utils from '../js/utils';
albumsArray() {
this.albums = Utils.getAlbums(this.user, this.token);
}
utils.js
export async function getAlbums(user, token){
let store = []
let data = await axios.get(`https://api.imgur.com/3/account/${user}/albums/`, {
headers: {
Authorization: `Bearer ${token}`,
Accept: 'application/json'
}
})
.then(response => {
response.data.data.map( data => store.push(data))
})
return store || [];
}
所以,现在这样,我在相册['_v']中得到了我想要的结果。
Obs: albums(this.albums) 是我登录时的一个承诺,而 _v 是我需要的数据所在的关键。我做错了什么。我怎样才能让我的代码看起来更好?
谢谢
async/await 最酷的一点是你得到的是实际价值而不是承诺......你可以这样做:
export async function getAlbums(user, token){
let response = await axios.get(`https://api.imgur.com/3/account/${user}/albums/`, {
headers: {
Authorization: `Bearer ${token}`,
Accept: 'application/json'
}
})
return response.data.data || [];
}
您正在将 response.data.data 中的所有内容都推入商店...为什么不 return response.data.data 本身?
那么 file1.js 也应该使用 async/await 这样你就得到了数组而不是 promise...
async albumsArray() {
this.albums = await Utils.getAlbums(this.user, this.token);
}
有道理吗?