node.js - 如何从异步函数返回多个结果?
问题描述
我有这个功能:
const memberdata = async function() {
const name = await doquery('name','members','id',userid);
return (name);
};
memberdata().then(v => {
username = v[0].name; //returns John, etc.
}
现在我想增加这样的常量数量:
const memberdata = async function() {
const name = await doquery('name','members','id',userid);
const sex = await doquery('sex','members','id',userid);
const age = await doquery('age','members','id',userid);
但从现在开始,我得到了多个结果,而不仅仅是一个。then 的语法如何?
memberdata().then(v => {
username = v[0].name; //returns John, etc.
usersex = v[0].sex; //returns male, etc.
userage = v[0].age; //returns 24, etc.
}
解决方案
您需要一个对象来保存这些,然后返回该对象。如果您有多个数组,就像您的示例所暗示的那样,那么您可以拥有一个对象数组。像这样的东西:
const memberdata = async function() {
const name = await doquery('name','members','id',userid);
const sex = await doquery('sex','members','id',userid);
const age = await doquery('age','members','id',userid);
const returnObject = {name: name, sex: sex, age: age};
// loop here and push onto an array if needed.
return returnObject;
推荐阅读
- php - PHP for循环不附加所有字符串
- python-3.x - 错误:在循环中使用 df.at 函数时,“BlockManager”对象没有属性“T”问题
- python - 冒泡排序没有打印正确的东西
- javascript - 使用 node.js 将重复的 HTML 片段导入其他 html 文件
- unit-testing - 如何使用 jest 在 nuxt.js 中测试 head()
- flutter - Dart:类继承成员重复
- c# - 需要一种更有效的方式进行 id 比较
- java - 如何解决对全局设置/事件注册表的类型安全异议?
- flutter - 如何使倒数计时器在不同的持续时间之间自动切换?
- android - 引导后未从 BroadcastReceiver 启动前台服务