Last active
July 18, 2017 20:02
-
-
Save stevermeister/a6a99fa1ce05d19e8e114827af0bba3b to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const myInput = document.getElementById('myInput'); | |
//1 - input | |
//2 - fetch | |
//3 - debounce | |
//Why not Promise? | |
/* | |
//---------------------1------------------------ | |
function createEventPromise() { | |
let listener: (event:KeyboardEvent) => void; | |
let p = new Promise((resolve) => { | |
listener = (event) => { | |
resolve(event); | |
} | |
myInput.addEventListener('input', listener); | |
}); | |
return p.then((event: KeyboardEvent) => { | |
console.log((event.target as HTMLInputElement).value); | |
myInput.removeEventListener('input', listener); | |
createEventPromise(); | |
}); | |
} | |
createEventPromise(); | |
*/ | |
//---------------------2------------------------ | |
declare function fetch(url: string) : PromiseLike<any>; | |
function createEventPromise() { | |
let listener: (event:KeyboardEvent) => void; | |
let p = new Promise((resolve) => { | |
listener = (event) => { | |
resolve(event); | |
} | |
myInput.addEventListener('input', listener); | |
}); | |
return p.then((event: KeyboardEvent) => { | |
//console.log((event.target as HTMLInputElement).value); | |
fetch(`https://api.github.com/search/repositories?q=${(event.target as HTMLInputElement).value}`).then(response => response.json()).then((repos) => { | |
console.log(repos); | |
}); | |
myInput.removeEventListener('input', listener); | |
createEventPromise(); | |
}); | |
} | |
createEventPromise(); | |
/* | |
declare var Rx; | |
let o = Rx.Observable.fromEvent(myInput, 'input'); | |
o.subscribe((event:KeyboardEvent) => { | |
console.log((event.target as HTMLInputElement).value); | |
}); | |
*/ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment