我使用查询字符串参数成功发出请求:
// Works
var Promise = require("bluebird");
var request = Promise.promisifyAll(require("request"));
request.get({
url: 'https://api.angel.co/1/tags/' + encodeURIComponent(friscoLocationTag) + '/startups',
qs: {
access_token: myToken,
order: 'popularity'
},
method: 'GET'
}, function(error, response, body){
// request success
console.log(body);
});
但是,当我尝试 promise 我的请求时,我失败了:
// Does Not Work
var Promise = require("bluebird");
var request = Promise.promisifyAll(require("request"));
request.get({
url: 'https://api.angel.co/1/tags/' + encodeURIComponent(friscoLocationTag) + '/startups',
qs: {
access_token: myToken,
order: 'popularity'
},
method: 'GET'
}).then(function(error, response, body){
console.log(body);
});
这给出了错误:
}).then(function(error, response, body){
^
TypeError: undefined is not a function
at Object.<anonymous> (/Users/connorleech/Projects/startup-locator/server/routes.js:36:4)
如何使用 bluebird 正确地 promise 我的 get 请求?
最佳答案
尝试对请求模块进行 promise 时会遇到陷阱,您遇到的问题只是其中之一。我建议您改为查看 request-promise这基本上就是您要尝试做的,它是使用 bluebird promises 的请求模块的实现
编辑:
安装请求 promise
npm install request-promise --save
然后:
var request = require('request-promise');
request({
url: 'https://api.angel.co/1/tags/' + encodeURIComponent(friscoLocationTag) + '/startups',
qs: {
access_token: myToken,
order: 'popularity'
},
method: 'GET'
})
.then(function(body){
console.log(body)
})
关于javascript - 如何使用查询字符串 promise GET 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32507772/