javascript - 直接返回 Promise 中的对象

标签 javascript node.js es6-promise request-promise

为什么这段代码会这样

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中返回一个对象呢?

最佳答案

这与 Promise 完全无关,只与胖箭头函数语法的歧义有关。问题是您返回的文字对象与函数体混淆了。只需将其放在括号之间即可:

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)
});

关于javascript - 直接返回 Promise 中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48923720/

相关文章:

javascript - 文件末尾出现 TS1128 'Declaration or statement expected' 错误,即使代码看起来不错,该错误也不会消失

javascript - HTTP 直播 : how to listen for timed metadata embedded as ID3 tags using Javascript in iOS8?

javascript - module.exports 在 node.js 应用程序中冲突/被覆盖

javascript - 重用 Promise 创建

javascript - 将 Promise 解析/拒绝处理程序传递给子函数是错误的吗?

javascript - (Promise loop)_让div一个一个高亮有延迟

javascript - 刷新页面时捕获历史状态

javascript - Douglas Crockfords - 如何将基方法调用到继承类中

node.js - 副本集的 PrimaryPreferred 首选项不起作用

node.js - node-archiver:归档多个目录