【发布时间】:2019-07-25 01:48:43
【问题描述】:
问题
我在使用 MERM 应用程序时遇到问题,其中在整个函数的主体中声明的变量被分配给子函数,但是,每当我尝试在末尾操作/显示此变量时整个函数,它返回一个“未定义”。
代码
getSimilarCasesFromID: function(req, res, next) {
let queryString = "id::"+req.params.id;
let params = {
'query': queryString,
'environment_id':environmentId,
'collection_id': collectionId,
'configuration_id': configurationId,
return: 'enriched_text'
}
let filterStrArr = [];
const FILTER_CONCEPT = "enriched_text.concepts.text:";
let filterStr ="";
discovery.query(params, (error, results) => {
if (error) {
next(false, err, []);
} else {
let conceptSize = results.results[0].enriched_text.concepts.length;
let concepts = {};
for (let i = 0; i < conceptSize; i++) {
concepts[i] = {
text: results.results[0].enriched_text.concepts[i].text,
relevance: results.results[0].enriched_text.concepts[i].relevance
};
filterStrArr[i] = FILTER_CONCEPT + concepts[i].text;
}
filterStr = filterStrArr.join(",");
console.log(filterStr);
//1. Works and displays---------------
}
});
console.log("FullString (2.)"+filterStr);
//2. Undefined????????????????????------------
next(true, [], []);
},
我指的是第 (1.) 和 (2.) 行。我不知道我是否遗漏了什么,并犯了一个愚蠢的小错误。
有趣的是,如图 1 所示,FullString (2.) 出现在第 (1.) 行之前。这可能是由于 Watson Discovery 的响应时间造成的吗?请记住该服务位于澳大利亚悉尼?如果是这样,还有其他人有这方面的经验吗?
【问题讨论】:
标签: node.js reactjs express ibm-watson watson-discovery