【问题标题】:Accessing data in a promise array访问 promise 数组中的数据
【发布时间】:2018-09-17 01:21:51
【问题描述】:

所以,我有一个 promise 数组,我需要使用它来进行比较和排序。但是我似乎无法使用它。

Promise {
  RowDataPacket {
  userid: 'id',
  username: 'name',
  password: 'pass',
  email: 'email',
  rank: 5,
  title: 'Squire' } }

这个数组被分配给data

我试过data[0] 来获取行数据。返回undefined 然后我只是尝试使用属性data.username 也返回为undefined...我应该如何使用这个数组?

【问题讨论】:

  • 这不是有效的增​​益或 JavaScript

标签: javascript node.js


【解决方案1】:

据我了解,您正在尝试访问 Promise 对象内部的数组,对吗?要访问数据,假设将 Promise 分配给变量 data,您可以这样做

data.then( dataArray => doStuffWithArray(dataArray) )

这是一篇关于 promises 的好文章,您可以阅读以更好地了解 Promise 的使用方式和功能。

【讨论】:

  • 是的,那是行不通的。我不喜欢使用.then(),因为我在那里所做的一切都在那里。如果我为其中的变量分配一个值,然后尝试从中使用它,它就是行不通的。我可能只需要重新重写整个事情。我已经不得不使用 Promise 了,这很烦人,只是试图比较查询中的用户名。
  • 哈哈。这不是关于喜欢它是关于承诺如何运作的。
  • 您可以使用 async / await javascript.info/async-await 来访问您在 Promise 之外的数据,但这些也可以在底层使用 Promise。这是你可以做的最接近的解决这个问题的方法,变量被限定在一个 Promise 内。
  • 如果你不喜欢异步结果“停留”在 then 函数中的事实,那么就不要进行异步编程。这并不难,真的,只要停止做网络连接、数据库请求、用户输入......
猜你喜欢
  • 2020-09-13
  • 1970-01-01
  • 2019-01-15
  • 2023-04-04
  • 2019-04-25
  • 1970-01-01
  • 1970-01-01
  • 2021-01-16
  • 1970-01-01
相关资源
最近更新 更多