答应我使用的是蓝鸟的承诺框架,使POST请求,并获得该POST请求的响应:实施request.postAsync与蓝鸟
var Promise = require('bluebird');
var request = Promise.promisifyAll(require('request'));
// Set the headers
var headers = {
'User-Agent': 'Super Agent/0.0.1',
'Content-Type': 'application/x-www-form-urlencoded'
}
var options = [];
var scores = [];
// Configure the request
options[0] = {
url: 'https://api.havenondemand.com/1/api/sync/analyzesentiment/v1',
method: 'POST',
headers: headers,
form: {'apikey': 'XXXXXXXXXXX', 'text': 'I love dogs'}
}
// Start the request
request.postAsync(options[0]).spread(function(response, body) {
if (response.statusCode == 200) {
var answer = JSON.parse(body);
scores[0] = answer['aggregate']['score'];
}
}).then(function() { console.log(scores[0]) });
这是我收到错误消息:
Unhandled rejection TypeError: expecting an array or an iterable object but got [object Null]
at apiRejection (/Users/vphuvan/demos/node_modules/bluebird/js/release/promise.js:10:27)
etc.
我需要做些什么来解决这个错误信息?
注:我目前使用的蓝鸟的版本是3.0.5
尽管如此,我仍然在寻找一个适用于[email protected]的answet。 –
[This](http://stackoverflow.com/a/33764521/682246)应该这样做;)你需要传递'multiArgs:true'。 – Mike