如何将前一个语句中的参数传递给下一个语句

时间:2017-05-10 15:47:06

标签: node.js asynchronous promise arguments es6-promise

我很开心Promises,但有一个问题。

这是我的代码

 req.checkBody(BookManager.SCHEME);
        req.getValidationResult()
            .then(function (result) {
                if (!result.isEmpty()) {
                    handler.onError('Invalid payload');
                    return;
                }
                return new BookModel({
                    author: data.author,
                    name: data.name,
                    year: data.year
                });
            })
            .then((book) => {
                book.save();
            })
            .then((saved) => {
                handler.onSuccess(saved);
            })
            .catch((error) => {
                handler.onError(error.message);
            });

但由于某种原因,这句话

.then((book) => {
                    book.save();
                })

将book参数设置为undefined。

我做错了什么,如何将结果从then语句传递给下一个语句。

感谢。

1 个答案:

答案 0 :(得分:0)

抱歉,我刚刚发现了这个问题,你只需要抛出一个错误就可以打破链条。

.then(function (result) {
                if (!result.isEmpty()) {
                       throw new Error('Invalid payload');
                }