【发布时间】:2021-10-06 08:01:38
【问题描述】:
我在从 Algolia multipleQueries 搜索选项获取结果后尝试设置一个变量。
结果是一个对象,我解构它得到 2 个数组。
我通过它进行映射并将返回设置为具有“nbHits”的数组
const results = await algolia
.multipleQueries(searchOptions, {
strategy: "stopIfEnoughMatches",
})
.then(({ results }) => {
console.log("Step 1", results);
_.map(results, result => {
console.log(" Step 2", _.get(result, "nbHits"));
if (_.get(result, "nbHits") != 0) {
console.log(" Step 3", _.get(result, "hits"));
return _.get(result, "hits");
}
});
});
console.log("Step 4", results);
Step 1
[ {
nbHits: 421,
hits: 1000,
},
{
nbHits: 0,
hits: 0,
} ]
Step 2 : 421
Step 3 : "An array with the hits"
Step 2 : 0
Step 4 : Undefined
我做错了什么导致返回值将 const 结果设置为未定义。
这行得通:
const results = await algolia
.multipleQueries(searchOptions, {
strategy: "stopIfEnoughMatches",
})
console.log(results);
【问题讨论】:
-
您从未返回地图的结果。你应该在
_.map前面加上return
标签: javascript reactjs async-await lodash algolia