gpt4 book ai didi

javascript - AngularJS:在 $http get 之后从对象检索数组

转载 作者:行者123 更新时间:2023-11-28 18:15:02 26 4
gpt4 key购买 nike

抱歉,我是 Angular 新手。这可能是转储问题。我在 json 中有以下数据结构:

[
{"id": "1", "name": "Alan", "location": "US"},
{"id": "2", "name": "Bella", "location": "UK"}
]

我有以下服务:

    let users = getData();

function getUsers() {
return users;
}
function getData() {
return $http
.get("./data/users.json")
.then(function(response) {
return response.data;
});
}
function addUser(user) {
let id = users.$$state.value[users.$$state.value.length - 1].id++;
users.$$state.value.push({
// adding user
})
}

我从$http.get获取一些非常不方便的对象。如何将其恢复为数组表示形式?

最佳答案

这里的问题是缺乏对如何promises的理解工作,你的$http调用并不返回响应,而是对该异步请求的 promise 。当您有异步任务并且需要订阅其解析的回调时,Promise 正是用于这种情况。

无论如何,您必须订阅成功主题的回调,而不是尝试直接使用返回的 Promise,该回调在 Promise 中由 then(fn) 方法给出,并向您的变量提供从 $http.get().then ...$ 上的链式 Promise 返回的数据。

例如:

let users = [];

getData()
.then(function (data) {
users = data;
});

function getUsers() {
return users;
}

function getData() {
return $http
.get("./data/users.json")
.then(function(response) {
return response.data;
});
}

function addUser(user) {
let id = users.$$state.value[users.$$state.value.length - 1].id++;
users.$$state.value.push({
// adding user
})
}

关于javascript - AngularJS:在 $http get 之后从对象检索数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40862854/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com