Tutaj mam funkcje która pobiera zapisane wiadomości z Google Storage Local.
Po uruchomieniu funkcji fetchAsync() pobiera wiadomości, wysyła na serwer, ale nie odczekuje na odpowiedź. Jak zrobić, aby odczekiwało na odpowiedź?
Tutaj funkcja która działa, ale nie oczekuje na odpowiedź: https://4programmers.net/Pastebin/15102
Na lokalnym serwerze działa, ale jak musi już kilka sekund poczekać, to już nie czeka tylko nic nie pokazuje.
A na dole to co próbowałem coś sam zrobić, ale nadal brak odpowiedzi z serwera.
function getMessagesLocal() {
return new Promise(resolve => {
var data = [];
chrome.storage.local.get(['convid', 'convlog'], function(val) {
data.push(val["convlog"]);
data = data.toString().replace(/(?:\r\n|\r|\n)/g, '<br>');
const mydata = { conv: data, convid: val["convid"] };
resolve(JSON.stringify(mydata));
})
})
}
async function fetchAsync () {
/*getMessagesLocal().then(r => {
console.log(r)
})*/
var r = getMessagesLocal()
var mydata = await r;
console.log(mydata); // here show the results
let response = await fetch("https://example.com/api", {
method: "POST",
//mode: 'no-cors',
headers: {
"Content-Type": "application/json"
},
body: mydata
})
let data2 = await response.text();
console.log(data2) // no response from server
}
fetchAsync()
.then(data => console.log(data))
.catch(reason => console.log(reason))