javascript - 使用 Promises 时,每个 then() 都应该返回一个值或抛出

标签 javascript node.js

我有一些异步方法需要等待完成,然后才能从请求返回。我正在使用 Promises,但我不断收到错误消息:

Each then() should return a value or throw // promise/always-return

为什么会这样?这是我的代码:

router.get('/account', function(req, res) {
  var id = req.user.uid
  var myProfile = {}
  var profilePromise = new Promise(function(resolve, reject) {
    var userRef = firebase.db.collection('users').doc(id)
    userRef.get()
      .then(doc => { // Error occurs on this line
        if (doc.exists) {
          var profile = doc.data()
          profile.id = doc.id
          myProfile = profile
          resolve()
        } else {
          reject(Error("Profile doesn't exist"))
        }
      })
      .catch(error => {
        reject(error)
      })
  })
  // More promises further on, which I wait for
})

最佳答案

then()

的末尾添加
return null

就是这样。

Each then() should return a value or throw Firebase cloud functions

关于javascript - 使用 Promises 时,每个 then() 都应该返回一个值或抛出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48750847/

相关文章:

javascript - 获取在 WP 中实现的 'slide down' js 面板

javascript - 运行 3 个 Promise,然后在其他 Promise 完成后运行最后一个 Promise

node.js - 如何在 mongo 投影内重命名查询对象中的字段?

node.js - 如何使用 phantomjs 作为 npm 包

javascript - 如何在Kendo UI Map中更改标记颜色?

javascript - 删除一项后组件列表不更新状态

javascript - 为什么这个正则表达式作为 var pattern =/.../而不是作为 var pattern = RegExp ("...")?

javascript - 如何使用 for 循环在空对象中设置属性?

javascript - 使用 Spring Boot 构建短信和视频通话应用程序

javascript - 我在 nodejs 中有一个查询,想要从查询中返回 numOfComment 的值。但这是行不通的。请注意,这段代码外面有一个循环