Skip to content

Instantly share code, notes, and snippets.

@oliverturner
Last active March 27, 2016 12:21
Show Gist options
  • Save oliverturner/7e66a99f9a9fc0adb031 to your computer and use it in GitHub Desktop.
Save oliverturner/7e66a99f9a9fc0adb031 to your computer and use it in GitHub Desktop.
awaitable fs functions adapted from https://twitter.com/jamespearce/status/644002032479662080
import fs from 'fs'
import makeAwaitable from './makeAwaitable'
const fs2 = {
open: makeAwaitable(fs.open),
write: makeAwaitable(fs.write),
close: makeAwaitable(fs.close)
}
async function save (fileName, text) {
const file = await fs2.open(fileName, 'w')
await fs2.write(file, text)
await fs2.close(file)
}
save('./test.txt', 'w00t!')
export const makeAwaitable = (fn) => {
(...args) => new Promise((resolve, reject) =>
fn.call(null, ...args, (err, ...args) => {
err ? reject(err) : resolve(args)
})
)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment