我正在尝试编写一个纯函数以将 Alchemy API 与 watson-developer-cloud npm 包一起使用,但我无法弄清楚如何同步执行其调用。是否有替代方法或包可以让我同步接收其结果?在 I/O 发生时阻塞是绝对没问题的。
问问题
232 次
1 回答
5
您不能watson-developer-cloud
使用npm 模块进行同步调用。你可以做的是使用Promises并模仿同步模型。
下面的示例展示了如何recognizeFaces
使用 Promise 调用 AlchemyVision 方法:
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);
});
于 2015-12-20T01:02:02.797 回答