// async iteration in JavaScript?
function SelectAsync(asyncGenerator, asyncProjection) {
return function(cancellationToken) {
return spawnSequence(function*(Yielder){
foreach (asyncItem in asyncGenerator(cancellationToken)) {
var item = yield asyncItem;
var result = yield asyncProjection(item, cancellationToken);
yield Yielder.Result(result);
}
yield Yielder.Return();
}
}
}