是否有更清晰的方式来处理链接的Promises?

时间:2016-06-17 00:07:27

标签: javascript promise sequelize.js

我正在围绕一些Sequelize(JS ORM)代码编写一些集成测试。大多数Sequelize函数调用返回Promises,我还没有用过。是否有更清晰的方法来编写以下测试用例?

  it('can add a membership to a user, and user will receive membership.', function() {
return db.Sequelize.Promise.join(

  User.create({ firstName: 'foo', lastName: 'bar',
    identifier: 'foobar', password: 'whatever', }),

  Membership.create( { displayName:'Iron Maiden',role:'somerole' }),

  // This is the part I'd like to improve the clarity of,
  // if possible.
  function(expectedUser, membership) {
    return membership.setUser(expectedUser).then(
      function(updatedMembership) {
        return updatedMembership.getUser().then(
          function(actualUser) {
            return assert.equal(actualUser.id, expectedUser.id);
          })
      })
  })
});

1 个答案:

答案 0 :(得分:2)

function(expectedUser, membership) {
    return membership.setUser(expectedUser)
        .then(function(updatedMembership) {
            return updatedMembership.getUser();
        })
        .then(function(actualUser) {
            return assert.equal(actualUser.id, expectedUser.id);
        });
});