Cześć!
Potrzebuję pomocy. Dla jasności, coś tam w życiu programowałem, ale nie znam JS. Potrzebuję drobnego sterowanie na karcie muzycznej. Testowałem z curl w bash'u i drobny skrypt robi co chcę, ale potrzebuję wersji w JS. Próbowałem sam, ale nie mogę przebrnąć jednego elementu. Do rzeczy.
Oto kod:
async function doRequest() {
let url = "http://10.1.1.11/datastore/mix/talkback/enable";
let res = await fetch(url);
if (res.ok) {
const text = await res.text();
return text; // text przyjmuje wartość {"value":0} lub {"value":1}
}
else {
return `HTTP error: ${res.status}`;
}
}
let a = doRequest().then((data) => {
console.log(data);
});
Mój problem polega przypisaniu zmiennej a
W takiej postaci jak teraz a przyjmuje wartość:
Promise {[[PromiseState]]: 'pending', [[PromiseResult]]: undefined, Symbol(async_id_symbol): 39, Symbol(trigger_async_id_symbol): 5}
Problem rozwiązałem ale wydaje mi się mało elegancki.
async function doRequest() {
let url = "http://10.1.1.11/datastore/mix/talkback/enable";
let res = await fetch(url);
if (res.ok) {
const text = await res.text();
return text;
} else {
return `HTTP error: ${res.status}`;
}
}
doRequest().then((data) => {
const b = '{"value":1}';
// console.log(data);
if (data == b) {
fetch("http://10.1.1.11/datastore", {
method: "POST",
headers: {
"Content-Type": "application/x-www-form-urlencoded",
},
body: 'json={"mix/talkback/enable":0}',
});
} else {
fetch("http://10.1.1.11/datastore", {
method: "POST",
headers: {
"Content-Type": "application/x-www-form-urlencoded",
},
body: 'json={"mix/talkback/enable":1}',
});
}
});
Jak uzyskać odpowiedź serwera do dalszego przetwarzania w programie? Czyli jak zrobić żeby a
przyjęło wartość zwracana z serwera {"value":0}
lub {"value":1}
?
Mam nadzieję, że się wyraziłem jasno.