答案

下面,我们将使用命名的回调函数来执行每一步操作。在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')
}
用户头像
登录后发表评论