同步使用Alchemy API

时间:2015-12-19 14:01:21

标签: node.js ibm-watson alchemyapi

我正在尝试编写一个纯函数来使用Alchemy API和watson-developer-cloud npm包,但我无法弄清楚如何同步执行它的调用。是否有其他方法或包可以同步获得结果?在I / O发生时阻塞绝对没问题。

1 个答案:

答案 0 :(得分:4)

无法使用watson-developer-cloud npm模块进行同步调用。 你可以做的是使用Promises并模仿同步模型。

下面的示例显示了如何使用promises调用AlchemyVision recognizeFaces方法:

var watson = require('watson-developer-cloud');
var Q = require('q');

var alchemy_vision = watson.alchemy_vision({
  api_key: '<api_key>'
});

// Creates a promise-returning function from a Node.js-style function
var recognizeFaces = Q.denodeify(alchemy_vision.recognizeFaces.bind(alchemy_vision));

var params = {
  url: 'http://si.wsj.net/public/resources/images/BN-BY925_mag041_OZ_20140318165119.jpg'
};

recognizeFaces(params).then(function (keywords) {
  console.log(JSON.stringify(keywords, null, 2));
}).catch(function (err) {
    console.log('error:', err);
});