Performing data transportations in RxJS with Promises
I would be more inclined to map with the flatMap to have my results flow through.

Something like the following, might do what you're looking for.

return observable
  .flatMap(item =&gt; Observable.fromPromise(fs.readFile('./config.json'))
    .map(file =&gt; ({ config: JSON.parse(file.toString()), testResult: item })))
  .flatMap(({ config, testResult }) =&gt; Observable.fromPromise(getStudentIdFromStudentNumber(item.testResult['Student Primary ID']))
    .map(id =&gt; ({
      'Test Date': config.testConstants.ROGL_Begin_Year.testDate,
      'Student Id': id,
      'Student Number': testResult['Student Primary ID'],
      'Grade Level': testResult.Grade,
      'Composite Score Alpha': testResult['Composite Score']
    })));