Skip to content

Commit

Permalink
small fixes.
Browse files Browse the repository at this point in the history
  • Loading branch information
ideadapt committed May 16, 2020
1 parent 98e4256 commit d65cc52
Show file tree
Hide file tree
Showing 6 changed files with 58 additions and 56 deletions.
4 changes: 1 addition & 3 deletions src/exercises/functions/closures.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
// 1
// a. Was gibt folgender Code aus?

let i

for (i = 0; i < 4; i++) {
for (var i = 0; i < 4; i++) {
setTimeout(() => {
console.log(i)
}, 2000)
Expand Down
2 changes: 1 addition & 1 deletion src/exercises/modules/admin.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ Store(items)
// items kann z.B. ein Array von Personen sein
- add(item)
- remove(item)
- findAll(item => boolean)
- findAll(item => boolean): Array<item>
// das bedeutet: die Methode findAll erwartet als Argument eine Funktion,
welche als Argument ein Item entgegen nimmt und ein Boolean retourniert
Expand Down
40 changes: 0 additions & 40 deletions src/exercises/promise.js

This file was deleted.

52 changes: 52 additions & 0 deletions src/exercises/promise.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# Promise

## 1
### a
Schreibe eine Funktion calcX,
- die eine Zahl z zwischen 0 und 1 entgegen nimmt
- ein Promise retourniert, welches bei einer Zahl
- \>= 0.8 diese als Fehler rejected
- < 0.8 diese Zahl resolved

Signatur: `calcX(Number): Promise<Number>`

Rufe die Funktion 10 mal auf und logge die Ergebnisse.

### b
Ergänze calcX so, dass Sie jeweils um (Math.random()*100)ms wartet bevor sie ein Resultat generiert.
Rufe die Funktion 10 mal auf und logge die Ergebnisse.

Was ist anders im Vergleich zum Verhalten unter 1a?

### c
Rufe die Funktion calcX 10 mal auf, summiere alle erfolgreichen Werte. Logge die fehlschläge.
Verwende jeweils i/10 als Parameterwert.


## 2
Zeichne für folgende Code-Schnippsel ein Ablaufdiagram aller möglichen Abläufe.

### a
```
getDetails(card.id)
.then(initDetails.bind(null, card))
.finally(loading.bind(null, false))
```

### b
```
showExecuteListConfirmationDialog()
.then(callExecuteApi.bind(null, paymentsForExecution))
.then(done.bind(null, true))
.then(MessageBus.publish.bind(null, 'paymentListExecuted', paymentList, executionDate))
.catch(handleError)
```

### c
```
indicateLoading(true)
.then(loadRegions.bind(null, card.id))
.then(assignRegions)
.catch(handleError)
.finally(indicateLoading.bind(this, false))
```
15 changes: 4 additions & 11 deletions src/exercises/solutions/functions/closures.sol.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,25 +10,18 @@ for(let i=0;i<4;i++){
}
// let erstellt eine Variable (Binding-Context) pro Block (for definiert einen Block).

for(var i=0;i<4;i++){
window.setTimeout(()=>{
var idx = i
window.alert(idx)
}, 2000)
}

// Variante 2
[0,1,2,3,4].forEach(function(i){
window.setTimeout(function(){
[0,1,2,3,4].forEach(i => {
window.setTimeout(() => {
window.alert(i)
}, 2000)
})
// i wird jeweils an das argument des callbacks gebunden, der ist stehts so wie er sollte.
// i wird jeweils an das argument des callbacks gebunden. Pro callback entsteht ein neues Binding.

// Variante 3
for(var i=0;i<4;i++){
window.setTimeout(function(idx){
window.alert(idx)
}.bind(null, i), 2000)
}
// i wird als argument gebunden zum erstellungszeitpunk der funktion. es werden im ganzen 5 funktionsobjekte erstellt.
// i wird als argument gebunden zum erstellungszeitpunk der funktion. Es werden im ganzen 5 funktionsobjekte erstellt.
1 change: 0 additions & 1 deletion src/exercises/solutions/modules/admin/admin.module.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,2 @@

export {Person} from './person.js'
export {Store} from './store.js'

0 comments on commit d65cc52

Please sign in to comment.