Skip to content

Instantly share code, notes, and snippets.

View vsavkin's full-sized avatar

Victor Savkin vsavkin

View GitHub Profile
expect(App.reqres).toHaveBeenCalledWith("favouriteLanguages", "Victor");
library streams;
import 'dart:html';
import 'dart:async';
import 'dart:uri';
import 'dart:json' as JSON;
import 'package:js/js.dart' as js;
main() {
var inputs =
Wikipedia Search <input id="query"/>
<h1>Result</h1>
<ul id="items"></ul>
var inputs =
$("#query").
keyupAsObservable().
select(function(event){return event.target.value;}).
where(function(text){return text.length > 2;}).
throttle(500).
distinctUntilChanged();
inputs.
select(queryWikipedia).
function queryWikipedia(term) {
var url = "http://en.wikipedia.org/w/api.php";
var data = {action: 'opensearch', search: encodeURI(term)};
return $.getAsObservable(url, data, 'jsonp');
}
function updateResults(items){
var ul = $("#items");
ul.html(_.map(items, function(item){
return "<li>" + item + "</li>";
query("#query").
onKeyUp
query("#query").
onKeyUp.
map((event) => event.target.value)
query("#query").
onKeyUp.
map((event) => event.target.value).
where((text) => text.length > 2)
class Throttle<T> extends StreamEventTransformer<T,T> {
final duration;
Timer lastTimer;
Throttle(millis) :duration = new Duration(milliseconds : millis);
void handleData(T event, EventSink sink) {
if (lastTimer != null) {
lastTimer.cancel();
}
lastTimer = new Timer(duration, () => sink.add(event));
var inputs =
query("#query").
onKeyUp.
map((event) => event.target.value).
where((text) => text.length > 2).
transform(new Throttle(500)).
distinct();