.spread与数据重定向

时间:2015-10-27 04:52:36

标签: javascript promise

在为数据库开发时,方法spread是必不可少的,将数组值转换为命名参数。

但是当解析数据无法直接映射时如何做同样的事情?

这是一个嵌套事务的简单示例:

db.tx(function () {
    return promise.all([
        this.none("update users set active=$1 where id=$2", [true, 123]),
        this.none("insert into audit(status, id) values($1, $2)", ['active', 123]),
        this.tx(function () {
            return promise.all([
                this.one("insert into users(name) values($1) returning id", "John"),
                this.one("insert into events(code) values($1) returning id", 123)
            ]);
        })
    ]);
})
    .then(function (data) {
        console.log(data[2][0].id); // print new user id;
        console.log(data[2][1].id); // print new event id;
    });

我真的希望能够用then替换上一个spread部分,但问题是我们无法直接使用数据,我们需要在我们的data[2]中使用.spread(data[2], function (user, event) { console.log(user.id); // print new user id; console.log(event.id); // print new event id; }); 示例

获得以下效果的推荐方法是什么:

$_POST

1 个答案:

答案 0 :(得分:1)

您可以使用

.get(2).spread(function(user, event) { ... })