Cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Delay on messaging and watch face

ANSWERED

I am developing a watch face that connects to an API and retrieve tide info for the location of the phone. It is mainly for me, but I will be happy to make it available on the store.

 

I am having issues with a couple of things, and I would like to solve them before moving ahead with the development of it. Basically the it has a delay that happens at first run from studio, and every time I launch an app and go back to the watch face. 

 

1. The clock takes a second or two before displaying time.

2. Tides takes a few seconds before being displayed.

3.  When developing using console.log to check messages and var, the first time it runs well and display values. Then I have to run it few times before console.log shows something. It seemed to have improved once I changed the package.json to watchface, but I was wondering if the behavious is normal or code related.

 

Best Answer
0 Votes
1 BEST ANSWER

Accepted Solutions

Hey,

 

Don't nest the event handler inside your updateClock method.

You only subscribe to the tick event once, and update is called each time the tick event is emitted.

 

function updateClock(evt) {
myDate.innerText = (evt.date.toString().slice(0,4)) + (evt.date.toString().slice(8,10));
var hours = evt.date.getHours() > 12 ? evt.date.getHours() - 12 : evt.date.getHours();
hours = hours < 10 ? "0" + hours : hours;
var minutes = ("0" + evt.date.getMinutes()).slice(-2);
myTime.innerText = hours + ":" + minutes; };
clock.ontick = function(evt) {
updateClock(evt)
};

 

View best answer in original post

Best Answer
0 Votes
1 REPLY 1

Hey,

 

Don't nest the event handler inside your updateClock method.

You only subscribe to the tick event once, and update is called each time the tick event is emitted.

 

function updateClock(evt) {
myDate.innerText = (evt.date.toString().slice(0,4)) + (evt.date.toString().slice(8,10));
var hours = evt.date.getHours() > 12 ? evt.date.getHours() - 12 : evt.date.getHours();
hours = hours < 10 ? "0" + hours : hours;
var minutes = ("0" + evt.date.getMinutes()).slice(-2);
myTime.innerText = hours + ":" + minutes; };
clock.ontick = function(evt) {
updateClock(evt)
};

 

Best Answer
0 Votes