为什么这段代码
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中返回一个对象吗?
答案 0 :(得分: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)
});