#javascript #php #asynchronous
#javascript #php #асинхронный
Вопрос:
Я пытаюсь создать асинхронную функцию, которая запускается при загрузке определенных страниц, и ей также необходимо получить новейший индекс из базы данных .txt array.
var latestReceivedTweetId = 0 // 47
window.onload(async function(){
// let connection = await fetch('api-get-latest-tweets.php?latestReceivedTweetId=' latestReceivedTweetId)
let connection = await fetch(`api/api-get-latest-tweets.php?latestReceivedTweetId=${latestReceivedTweetId}`)
console.log(connection)
if(connection.status != 200){
alert('Something is wrong in the system')
}
let sTweets = await connection.text()
let aTweets = JSON.parse(sTweets) // PHP json_decode
for(var i = 0; i < aTweets.length; i ){
latestReceivedTweetId = aTweets[i].id
var divTweet = `
<div class="tweet" id="${aTweets[i].id}">
<p>${aTweets[i].title}</p>
<p>${aTweets[i].message}</p>
<button>delete</button>
</div>`
document.querySelector("#tweets").insertAdjacentHTML('afterbegin', divTweet)
}
console.log('latestReceivedTweetId', latestReceivedTweetId)
})
БД создается следующим образом
[{"id":"5f5f47b2d8f8f","title":"Hello World","message":"This is a tweet","userId":"5f59ff729184f"},{"id":"5f5fae2aa62b5","title":"New Tweet","message":"This is a new tweet","userId":"5f59ff729184f"},{"id":"5f5fae2cbb02b","title":"New Tweet","message":"This is a new tweet","userId":"5f59ff729184f"},{"id":"5f5fb14bebbc8","title":"Hello World","message":"This is a tweet","userId":"5f59ff729184f"}]
Если требуется дополнительная информация о коде, просто спросите, и я могу сослаться на github с проектом.
Комментарии:
1. почему бы не сделать
await connection.json()
вместо text() затем parse? что не работает?2. Он не помещает «твит» на страницу твитов. У меня это работало, когда я установил интервал, но затем он продолжал выполнять интервал, поэтому я пытался заставить его запускать только те скрипты, которые загружены на странице.
3. Я думаю, что загрузка неправильная, не так ли
window.onload = async function() {