Vinnaren i pepparkakshustävlingen!
2017-02-12, 18:54
  #13
Medlem
kimdah2002s avatar
Citat:
Ursprungligen postat av svettigafettsvinet
Det jag egentligen behöver lösa är att jag vill kunna jobba synkront.

T.ex. jag hämtar en sak från en databas eller liknande med en metod i steg 1. Men i och med att javascript är asynkront så börjar den på steg2 innan steg1 är färdig och värdena hämtade vilket resulterar i errors. Detta måste vara ett oerhört vanligt problem som måste ha någon sorts standardlösning.
Ja det finns en standardlösning på det -> callback
Du skapar en funktion steg1 och lägger steg2 som callback givetvis med en kontroll att steg1 avslutats utan fel.
Citera
2017-03-23, 20:27
  #14
Medlem
Citat:
Ursprungligen postat av kimdah2002
Ja det finns en standardlösning på det -> callback
Du skapar en funktion steg1 och lägger steg2 som callback givetvis med en kontroll att steg1 avslutats utan fel.

Lite sen på bollen här kanske men ville lägga till en sak. Fördelen med promises istället för callbacks är ju att man enkelt kan länka promises efter varandra och på så sätt slippa nästlade "callbacktrees of doom"
Citera
2017-04-01, 12:52
  #15
Medlem
roleones avatar
Citat:
Ursprungligen postat av zoorroo4
Lite sen på bollen här kanske men ville lägga till en sak. Fördelen med promises istället för callbacks är ju att man enkelt kan länka promises efter varandra och på så sätt slippa nästlade "callbacktrees of doom"

Det som sker är förvisso exakt samma sak. .then() för ett promise kommer att kalla den/de callback(s) du definierar som argument. Att du råkar skriva det som en anonym funktion förändrar inte det faktum att det sker en callback till den funktionen.

Syntaktiskt socker är trevligt och gör koden mer lättläst, men det förändrar inte det faktum att du fortfarande skapar ett "callbacktree of doom". Det är liksom så async fungerar.

EDIT: Och du kan såklart länka callbacks på samma sätt som du länkar promises, även om syntaxen inte är identisk. Vet inte var du fått den idén ifrån...
Citera
2017-04-01, 13:23
  #16
Medlem
Mia-Rovys avatar
Citat:
Ursprungligen postat av roleone
Det som sker är förvisso exakt samma sak. .then() för ett promise kommer att kalla den/de callback(s) du definierar som argument. Att du råkar skriva det som en anonym funktion förändrar inte det faktum att det sker en callback till den funktionen.

Syntaktiskt socker är trevligt och gör koden mer lättläst, men det förändrar inte det faktum att du fortfarande skapar ett "callbacktree of doom". Det är liksom så async fungerar.

EDIT: Och du kan såklart länka callbacks på samma sätt som du länkar promises, även om syntaxen inte är identisk. Vet inte var du fått den idén ifrån...
Användaren du citerar har helt rätt.

Promises möjliggör att man endast behöver hålla sig på ett "djup" i flödet. Och det är inte alls bara syntaktiskt socker, det ligger ett användbart koncept bakom, ett standardiserat funktionsmönster för asynkrona funktioner. Om Promises "bara" är syntaktiskt socker så är även allt alla andra funktioner det.

Men sälvklart kan man skriva egna promises, det är ju inte magi bakom.

Han har förmodligen fått idén efter att han läst orsaken till att man byggde in Promises in javascript

Det är även tal om att implementera observables I JS, som är Promises på steroider.

Även observables kan man skriva själv, och det finns redan t.ex. Rxjs. Ett mycket fint koncept
__________________
Senast redigerad av Mia-Rovy 2017-04-01 kl. 13:33.
Citera
2017-04-01, 14:02
  #17
Medlem
roleones avatar
Citat:
Ursprungligen postat av Mia-Rovy
Användaren du citerar har helt rätt.

Promises möjliggör att man endast behöver hålla sig på ett "djup" i flödet. Och det är inte alls bara syntaktiskt socker, det ligger ett användbart koncept bakom, ett standardiserat funktionsmönster för asynkrona funktioner. Om Promises "bara" är syntaktiskt socker så är även allt alla andra funktioner det.

Men sälvklart kan man skriva egna promises, det är ju inte magi bakom.

Han har förmodligen fått idén efter att han läst orsaken till att man byggde in Promises in javascript

Det är även tal om att implementera observables I JS, som är Promises på steroider.

Även observables kan man skriva själv, och det finns redan t.ex. Rxjs. Ett mycket fint koncept

Jag får uppfattningen att du inte riktigt läste vad jag skrev.

Att använda promises och fortsätta sitt flöde baserat på huruvida de blir resolved eller rejected innebär inte att du slutar använda callbacks. Argumentet till din .then, .catch eller .finally är fortfarande en callbackfunktion.

Kod:
function foo(callback) {
callback();
}

function bar(callback) {
callback();
}

function baz() {
}

foo(function() {
  bar(function() {
    baz();
  });
});

Kod:
foo()
  .then(bar)
  .then(baz)

och
Kod:
(function() {
})()
  .then(function() { })
  .then(function() { })

är likvärdiga vad gäller huruvida de använder sig utav callbacks eller inte. Sen att promises med then-kedjor är mer läsbart och att promises har mer funktionalitet som såklart är trevlig och bra motsätter jag mig inte.
__________________
Senast redigerad av roleone 2017-04-01 kl. 14:46.
Citera
2017-04-01, 15:48
  #18
Medlem
Citat:
Ursprungligen postat av roleone
Jag får uppfattningen att du inte riktigt läste vad jag skrev.
Jag får dock uppfattningen att du inte fattar vilka fördelar promises har.

Halmdockan som du släpar fram RE: Promises är funktioner..
Just detta har tidigare skribenter Mia-Rova skrivit flera gånger

Ditt exempel skippar all felhantering, och om man alltid skippar felhantering, då har ju inte promises direkt fördel.
Det är just kring felhantering som promises (eller andra liknande concept) har sin styrka.

Jag kan säga att jag får intryck av att du inte riktigt lyssnar på tidigare skribenter..
Citera
2017-04-01, 16:28
  #19
Medlem
roleones avatar
Citat:
Ursprungligen postat av sagonar
Jag får dock uppfattningen att du inte fattar vilka fördelar promises har.

Halmdockan som du släpar fram RE: Promises är funktioner..
Just detta har tidigare skribenter Mia-Rova skrivit flera gånger

Ditt exempel skippar all felhantering, och om man alltid skippar felhantering, då har ju inte promises direkt fördel.
Det är just kring felhantering som promises (eller andra liknande concept) har sin styrka.

Jag kan säga att jag får intryck av att du inte riktigt lyssnar på tidigare skribenter..

Fortfarande: hur påverkar att promises har inbyggt stöd för felhantering huruvida promises använder sig utav callbacks eller inte? hela poängen med ett promise är ju att utifrån att en viss sekvens har utförts, beroende på utfallet, göra en callback till en annan funktion. att argumentera för att promises har andra positiva fördelar förändrar inte det.
__________________
Senast redigerad av roleone 2017-04-01 kl. 16:32.
Citera
2017-04-01, 17:52
  #20
Medlem
Citat:
Ursprungligen postat av roleone
Fortfarande: hur påverkar att promises har inbyggt stöd för felhantering huruvida promises använder sig utav callbacks eller inte? hela poängen med ett promise är ju att utifrån att en viss sekvens har utförts, beroende på utfallet, göra en callback till en annan funktion. att argumentera för att promises har andra positiva fördelar förändrar inte det.

huh ?
Om du vill veta hur promsies funkar intern.. googla på det tror jag är bäst, läs på och komm sedan med frågor (om du då har några)

Vi andra här diskuterar fördelar med promises och lite hur promises funkar..
Men jag fattar inte vad DU vill få reda på med din postning ?
Citera
2017-05-26, 19:00
  #21
Medlem
edm4lifes avatar
Kör Async/await med Babel. Att använda "then" är sååå 2016!

https://ponyfoo.com/articles/underst...pt-async-await
Citera
2017-05-27, 22:08
  #22
Medlem
Citat:
Ursprungligen postat av edm4life
Kör Async/await med Babel. Att använda "then" är sååå 2016!

https://ponyfoo.com/articles/underst...pt-async-await
Jag tycker det är en bra start att lära använda helt vanlig ES6 JavaScript som går att köra i en moderna webläsare idag, utan någon babel, som ändå bara gör koden helt nerkladdad, långsammare och fullständigt oläsbar i vissa fall. Att 90% av alla JavaScript utvecklare sedan använder det som det vore en religion, när de ändå inte behöver alla funktioner är tecken på att något är allvarligt fel.
Citera
2017-05-27, 22:17
  #23
Medlem
tj.s avatar
Citat:
Ursprungligen postat av trellen
Jag tycker det är en bra start att lära använda helt vanlig ES6 JavaScript som går att köra i en moderna webläsare idag, utan någon babel, som ändå bara gör koden helt nerkladdad, långsammare och fullständigt oläsbar i vissa fall. Att 90% av alla JavaScript utvecklare sedan använder det som det vore en religion, när de ändå inte behöver alla funktioner är tecken på att något är allvarligt fel.
Att nämna läsbarhet i det här fallet är ju lite komiskt eftersom async/await gör koden betydligt mer läsbar än med callbacks.
Citera
2017-05-27, 22:27
  #24
Medlem
Citat:
Ursprungligen postat av tj.
Att nämna läsbarhet i det här fallet är ju lite komiskt eftersom async/await gör koden betydligt mer läsbar än med callbacks.
Inte direkt, den utökar komplexiteten i koden och betydligt mer sker under utan. Sedan så kommer den transpilerade koden, som du måste ibland läsa och debugga när source maps inte fungerar som de ska vara betydligt svår att hänga med.
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback