Я работаю над своим клиентом и достиг контрольно-пропускного пункта. Я пытаюсь получить данные из моего бэк-энда, и это фактически выборка данных. Но только после всего остального? Я покажу вам.
$(function(){
function GetURLId() {
var url = window.location.href;
var path = url.substring(url.lastIndexOf('/') + 1);
var id = path.substring(path.lastIndexOf('?id=') + 4, path.lastIndexOf("?id") + 5)
return id;
}
var url = 'https://localhost:5001/api/rental/byId/' + GetURLId();
fetch(url)
.then((resp) => resp.json())
.then(function(data) {
Object.keys(data).forEach(key => {
console.log(`${key}: ${data[key]}`);
})
});
});
Итак, сначала я получаю идентификатор, с которым работаю, из URL. Тогда, где проблема заключается в коде под ним. Я могу получить свои данные, как это console.logs это:
id: 2
status: "Open"
damage: true
Таким образом, данные действительно выбираются из моего бэк-энда. Но теперь, каждый раз, когда я пытаюсь сохранить данные, они остаются неопределенными. Я пробовал:
$(function(){
var rental = []; // Added an array
var url = 'https://localhost:5001/api/rental/byId/' + GetURLId();
fetch(url)
.then((resp) => resp.json())
.then(function(data) {
Object.keys(data).forEach(key => {
console.log(`${key}: ${data[key]}`);
rental.push(rental[key] = data[key]);
})
});
console.log(rental['id']); // Returns undefined
});
И:
var rental = []; // Added an array outside of the function
$(function(){
var url = 'https://localhost:5001/api/rental/byId/' + GetURLId();
fetch(url)
.then((resp) => resp.json())
.then(function(data) {
Object.keys(data).forEach(key => {
console.log(`${key}: ${data[key]}`);
rental.push(rental[key] = data[key]);
})
});
console.log(rental['id']); // Returns undefined
});
Но! С последним, где аренда находится вне функции, я могу фактически вызвать это в консоли. И в консоли он действительно возвращает значение.
Inside Console:
> rental["id"]
< 2
Наконец, я попытался проверить значение ключа и значение внутри выборки, например:
$(function(){
var url = 'https://localhost:5001/api/rental/byId/' + GetURLId();
fetch(url)
.then((resp) => resp.json())
.then(function(data) {
Object.keys(data).forEach(key => {
if(key == "status" && data[key] != "Reserved") {
console.log(`${key}: ${data[key]}`); // Returns damage: undefined 3 times
}
})
});
});
Но это также не работает. Он возвращает урон: не определено 3 раза в консоли.
Так что, если кто-нибудь знает, что здесь происходит, это было бы здорово!
Большое спасибо заранее.