Я пытаюсь добавить эффект ввода к данным, поступающим из API, и показать их в li
файле ejs
. Я использую CDN typed.js, и я также использую функцию асинхронного вызова в своем приложении .js, вот мой код.
app.js
window.onload = function () {
// if (localStorage.getItem("hasCodeRunBefore") === null) {
async function positionFind(position){
//lat and long value passed in the weather function
await weather(position.coords.latitude,position.coords.longitude)
}
//check if browswer support geolocation
if(navigator.geolocation){
navigator.geolocation.getCurrentPosition(positionFind)
}
}
let info={}
async function weather(lat,lon){
// API call
let data=await fetch('http://api.openweathermap.org/data/2.5/weather?'+'&lat='+lat+'&lon='+lon+'&units=metric'+'&APPID='+WEATHER_KEY)
console.log("inside API")
const res= await data.json();
console.log(res)
Object.defineProperties(info, {
name: {
value: res.name,
writable: false
},
temp: {
value: res.main.temp,
writable: false
},
humidity: {
value: res.main.humidity,
writable: false
},
pressure: {
value: res.main.pressure,
writable: false
},
description: {
value: res.weather[0].description,
writable: false
}
})
temp(info.temp)
console.log(info.temp)
}
async function temp(value){
let typed=new Typed('#text', {
strings:[value],
typeSpeed: 120,
});
}
app.ejs
<ul>
<li id="text"></li>
</ul>
что я ожидаю
Эффект печати на li
, при котором будет напечатано значение info.temp
.
выход
Без изменений на веб-странице.
Примечание:
Я знаю, что можно записать переменную в string
секции typed.js
, когда я пытаюсь реализовать это в другом файле, который работает.