我试图执行async-waterfall来获取api结果并将其保存到json然后将其保存到数据库中, 那是我的代码片段 请帮助!
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')
}
})
答案 0 :(得分:0)
第一个任务只有在遇到错误时才调用回调,错误在完美的情况下永远不会被调用。
注意:
1.每个任务'必须拨回电话。
2.确保在每个函数完成之前调用回调。
遵循异步文档中指示的模式 http://caolan.github.io/async/docs.html#waterfall