Skip to content

Instantly share code, notes, and snippets.

@eiriklv
Forked from pmuellr/flattened-callbacks.js
Last active August 29, 2015 14:13
Show Gist options
  • Save eiriklv/48480283553d6c1ce208 to your computer and use it in GitHub Desktop.
Save eiriklv/48480283553d6c1ce208 to your computer and use it in GitHub Desktop.
// another kind of flattening; see: http://blog.vullum.io/javascript-flow-callback-hell-vs-async-vs-highland/
var express = require('express')
var fs = require('fs')
var app = express()
app.post('/process-file', onProcessFile)
function onProcessFile(req, res) {
var inputFile = 'input.txt'
var outputFile = 'output.txt'
fs.readFile(inputFile, onReadFile)
function onReadFile(err, data) {
if (err) return res.status(500).send(err)
process1(data, onProcess1)
}
function onProcess1(err, data) {
if (err) return res.status(500).send(err)
process2(data, onProcess2)
}
function onProcess2(err, data) {
if (err) return res.status(500).send(err)
process3(data, onProcess3)
}
function onProcess3(err, data) {
if (err) return res.status(500).send(err)
fs.writeFile(outputFile, data, onWriteFile)
}
function onWriteFile(err) {
if (err) return res.status(500).send(err)
res.status(200).send('processed successfully using callback hell')
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment