下面,我们将使用命名的回调函数来执行每一步操作。在Promise章节我们还会看到如何使用promise来收集异步结果,并且还可以并发地执行任务。
但是现在,我们必须先完成一个回调获取其结果,再进行下一步。
code/callbacks/exercises/read-write/main.js
const fs = require('fs')
const request = require('request')
const url = 'https://jsonplaceholder.typicode.com/posts/2'
request.get(url, handleResponse)
function handleResponse(err, resp, body) {
if (err) throw new Error()
const post = JSON.parse(body)
const title = post.title
fs.readFile('./file.txt', 'utf-8', readFile(title))
}
const readFile = title => (err, content) => {
if (err) throw new Error(err)
const result = title + content
fs.writeFile('./result.txt', result, writeResult)
}
function writeResult(err) {
if (err) throw new Error(err)
console.log('done')
}