【问题标题】:Having problems with node and async节点和异步有问题
【发布时间】:2016-10-23 23:18:03
【问题描述】:

我正在尝试执行 async-waterfall 以获取 api 结果并将其保存到 json 然后将其保存到数据库中, 这就是我的代码的 sn-p 请帮忙!

    async.waterfall([
    function getBook(cbAsync) {
      books.search(query, (err, result) => {
        if (err)
          cbAsync(err)
        res.json(result)
      })
    },
    function saveToJson(saveToJsonCb, cbAsync) {
      jsonfile.writeFile(file, result, (err) => {
        if (err)
          cbAsync(err)
      })
    },
    function SaveToDb(saveCb, saveToJsonCb, cbAsync) {
      const book = {
        title: res.body.title,
        authors: [res.body.authors],
        description: res.body.description
      }
      //save the bookInfo to db
      book.save( (err) => {
        if (err)
          cbAsync(err)
        console.log('Book added!')
      })
    }
  ], function asyncComplete(err) {
    if (err) {
      console.warn('Error')
    } else {
      console.info('Task complete with success')
    }
  })

【问题讨论】:

    标签: javascript node.js express asynchronous


    【解决方案1】:

    第一个任务只有在遇到错误时才调用回调,在完美的情况下永远不会被调用。

    注意:
    1. 每个“任务”都必须调用回调。
    2. 确保在每个函数完成之前调用回调之前

    遵循异步文档中指示的模式 http://caolan.github.io/async/docs.html#waterfall

    【讨论】:

      猜你喜欢
      • 2014-11-19
      • 1970-01-01
      • 2016-04-25
      • 2015-03-25
      • 1970-01-01
      • 1970-01-01
      • 2014-12-04
      • 1970-01-01
      • 2020-01-11
      相关资源
      最近更新 更多