function extractKeywords(data, fn){
var NaturalLanguageUnderstandingV1 = require('watson-developer-cloud/natural-language-understanding/v1.js');
var natural_language_understanding = new NaturalLanguageUnderstandingV1({
'username': 'hidden',
'password': 'hidden',
'version_date': '2017-02-27'
});
var parameters = {
'text': data,
'features': {
'entities': {
'emotion': false,
'sentiment': false,
'limit': 10
}
};
keys = null;
natural_language_understanding.analyze(parameters, function(err, response) {
if (err) {
console.log('error:', err);
}
else {
keys = getAll(response); // "getAll" is a function that returns the keywords as a string
fn(keys);
}
});
}
现在,接下来的两个调用会输出让我困惑的东西:
extractKeywords("Abaktal Prospectus, tablets \\n What is Abaktal and what it is used for? nIndications \\n Infection caused ",
function(keyss){
return keyss;
}
);
输出:
空控制台
,而
extractKeywords("Abaktal Prospectus, tablets \\n What is Abaktal and what it is used for? nIndications \\n Infection caused ",
function(keyss){
console.log(keyss);
}
);
输出:
Abaktal Prospectus,片剂,感染,nIndications /健康和 健身/疾病/艾滋病和艾滋病,/技术和 计算机/硬件/计算机/便携式计算机/平板电脑,/技术和 计算/消费电子产品/便携式娱乐 市,, Abaktal,位置
哪个是正确的输出。
这是我的第一个javascript项目,所以我理解
natural_language_understanding.analyze(parameters, function(err, response) {
if (err) {
console.log('error:', err);
}
else {
keys = getAll(response); // "getAll" is a function that returns the keywords as a string
fn(keys);
}
});
涉及异步执行,我尝试使用
进行处理fn(keys);
显然,我的代码中存在引发此行为的问题,因为我想要的输出是:
Abaktal Prospectus,片剂,感染,nIndications /健康和 健身/疾病/艾滋病和艾滋病,/技术和 计算机/硬件/计算机/便携式计算机/平板电脑,/技术和 计算/消费电子产品/便携式娱乐 市,, Abaktal,位置
使用这个:
extractKeywords("Abaktal Prospectus, tablets \\n What is Abaktal and what it is used for? nIndications \\n Infection caused ",
function(keyss){
return keyss;
}
);
关于我应该更改/重新格式化以实现此目的的任何解决方案?