javascript - 将第二个值传递给 promise

标签 javascript promise

<分区>

这里我使用全局变量 usergb,因为在我获得购物车的“then” block 中,我无法再访问该用户。我怎样才能通过购物车传递用户,而不必创建全局 usergb ?

var usergb;
sequelize
  .sync()
  .then(result => {
    return User.findByPk(1);
  })
  .then(user => {
    if (!user) {
      return User.create({ name: 'Max', email: 'test@test.com' });
    }
    return user;
  })
  .then(user => {
    usergb = user;
    return user.getCart();
  })
  .then(cart => {   // here I lost the reference to user
    if (!cart) {
      return usergb.createCart();
    }
    return cart
  })
  .then(cart => {
    app.listen(3000);
  })
  .catch(err => {
    console.log(err);
  });

最佳答案

嵌套您需要引用 user 的 promise。

sequelize
  .sync()
  .then(result => {
    return User.findByPk(1);
  })
  .then(user => {
    if (!user) {
      return User.create({ name: "Max", email: "test@test.com" });
    }

    return user;
  })
  .then(user => {
    return (
      user
        .getCart()
        // Nest the next promise here
        .then(cart => {
          if (!cart) {
            return usergb.createCart();
          }

          return cart;
        })
    );
  })
  .then(cart => {
    app.listen(3000);
  })
  .catch(err => {
    console.log(err);
  });

关于javascript - 将第二个值传递给 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56553668/

相关文章:

javascript - 使用javascript重定向而不加载母版页

javascript - 如何根据其内部内容设置 iframe 的大小?

javascript - 如果我有一串 HTML 代码,如何使用 JQuery 来解析它?

javascript - 如何使用 jQuery DataTables 从所有页面提交复选框

javascript - 当父级被取消时,是否可以取消子级 promise ?

javascript - 如何从 for 循环返回解析 Promise Like 对象

javascript - 异步函数中并发 Promise 的顺序如何工作?

javascript - 光线转换器的三个 js 性能不佳

javascript - 在 Internet Explorer 中出现 Promise not Defined 错误

php - 如何 "extract"来自 ReactPHP\Promise\Promise 的数据?