2015-12-19 45 views
2

我正在嘗試編寫一個純函數來使用Alchemy API與watson-developer-cloud npm包,但我無法弄清楚如何同步執行它的調用。有沒有其他的方法或包可以同步獲得結果?發生I/O時發生阻塞是非常好的。同步使用Alchemy API

回答

4

不能watson-developer-cloud npm模塊做同步呼叫。 你可以做的是使用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); 
}); 
+0

得到一個錯誤的'無法讀取屬性「捆綁」的undefined'。爲什麼會這樣? –