← Torna al blog
Dev Tips
Un trucchetto al giorno leva le complicazioni di torno! Piccole "scorciatoie" che possono facilitare la vita degli sviluppatori e far risparmiare tempo...e righe di codice.
Un trucchetto al giorno leva le complicazioni di torno! Piccole "scorciatoie" che possono facilitare la vita degli sviluppatori e far risparmiare tempo...e righe di codice.
2021-06-30
1// JS Tip of the Day
2// Watch the current position of the device with Geolocation API
3
4let geoWatcher;
5const geoTarget = { lat: 37.869186, long: 41.275438 };
6const options = { enableHighAccuracy: true, timeout: 2000, maximumAge: 0 };
7
8function success({ coords }) {
9 if (geoTarget.lat === coords.latitude.toFixed(6)
10 && geoTarget.long === coords.longitude.toFixed(6)) {
11
12 console.log(`I'Batman! :D`);
13 navigator.geolocation.clearWatch(geoWatcher);
14 }
15}
16
17function error(err) {
18 console.warn(`Error: ${err.code} - ${err.message}`);
19}
20
21if (window.navigator && window.navigator.geolocation) {
22 geoWatcher = navigator.geolocation.watchPosition(success, error, options);
23}
2021-06-29
1// JS Tip of the Day
2// Create a range helper with Symbol.iterator
3
4let range = (from = 0, to = 5) => ({
5 from,
6 to,
7
8 [Symbol.iterator]() {
9 this.current = this.from;
10 return this;
11 },
12
13 next() {
14 if (this.current <= this.to) {
15 return { done: false, value: this.current++ };
16 } else {
17 return { done: true };
18 }
19 }
20});
21
22for (const item of range(10, 15)) {
23 console.log(item); // 10, 11, 12, 13, 14, 15
24}
2021-06-28
1// JS Tip of the Day
2// Get the current position of the device with Geolocation API
3
4const options = { enableHighAccuracy: true, timeout: 2000, maximumAge: 0 };
5
6function success({ coords }) {
7 console.log(`
8 Lat: ${coords.latitude}
9 Long: ${coords.longitude}
10 Accuracy (meters): ${coords.accuracy}`
11 );
12}
13
14function error(err) {
15 console.warn(`Error: ${err.code} - ${err.message}`);
16}
17
18if (window.navigator && window.navigator.geolocation) {
19 navigator.geolocation.getCurrentPosition(success, error, options);
20}
2021-06-25
1// JS Tip of the Day
2// Promise.allSettled method
3
4const heroPromises = Promise.allSettled([
5 Promise.resolve('Batman'),
6 Promise.resolve('Superman'),
7 Promise.reject('Spiderman is not a DC Hero!')
8]);
9
10heroPromises.then(promises => {
11 promises.forEach(item => console.log(item));
12});
13
14// {status: "fulfilled", value: "Batman"}
15// {status: "fulfilled", value: "Superman"}
16// {status: "rejected", reason: "Spiderman is not a DC Hero!"}
2021-06-24
1// JS Tip of the Day
2// Promise.all method
3
4const heroPromises = Promise.allSettled([
5 Promise.resolve('Batman'),
6 Promise.resolve('Superman')
7]);
8
9const anotherHeroPromises = Promise.allSettled([
10 Promise.resolve('Batman'),
11 Promise.reject('Spiderman is not a DC Hero!')
12])
13
14setTimeout(function() {
15 console.log(heroPromises);
16 // Promise { <state>: 'fullfilled', <value>: Array[2] }
17
18 console.log(anotherHeroPromises);
19 // Promise { <state>: 'rejected', <reason>: 'Spiderman is not a DC Hero!' }
20});
Hai in mente un progetto e vorresti realizzarlo?
Sei interessato a migliorare le competenze del tuo team in ambito di programmazione e sviluppo?
Oppure vuoi semplicemente prendere prendere un caffè con noi e vedere la nostra collezione di Action Figure, allora scrivici tramite questo form.
Se, invece, vuoi far parte del team, guarda le nostre offerte di lavoro.