0

为什么这段代码

app.post('/api/v1/subscribe', (req, res) => {
  lsq.services.get('subscribe')
    .then(service => {
      method: 'POST',
      uri: `http://${service}/api/v1/demo/subscribe`,
      json: req.body,
    })
    .then(rp)
});

抛出错误

 uri: `http://${service}/api/v1/demo/subscribe`,
    ^
SyntaxError: Unexpected token :

我的猜测是 JS 认为{是函数左大括号,而不是对象左大括号。那么,我们是不是不允许在 promise 中直接返回一个对象呢?

4

1 回答 1

2

这根本与承诺无关,仅与胖箭头函数语法的歧义有关。问题是您返回的文字对象与函数体混淆。把它放在括号之间:

app.post('/api/v1/subscribe', (req, res) => {
  lsq.services.get('subscribe')
    .then(service => ({
      method: 'POST',
      uri: `http://${service}/api/v1/demo/subscribe`,
      json: req.body,
    }))
    .then(rp)
});
于 2018-02-22T09:27:45.897 回答