以下是我的配置:
var Promise = require("bluebird");
var request = Promise.promisify(require('request'));
这个可以正常工作:
request('url')
它返回一个承诺。
这个不会:
request.post('url', {form: {type: 'artist'}})
出现以下错误:
TypeError: Object function promisified(_arg0,_arg1) { ... }has no method 'post'
at /Users/beamer30/projects/wevo/controllers/music.js:85:30
at Array.map (native)
at MusicSearch.spotifyRelated (/Users/beamer30/projects/wevo/controllers/music.js:84:22)
at MusicSearch.findRelatedArtists (/Users/beamer30/projects/wevo/controllers/music.js:48:7)
at musicController.search (/Users/beamer30/projects/wevo/controllers/music.js:100:17)
at Layer.handle [as handle_request] (/Users/beamer30/projects/wevo/node_modules/express/lib/router/layer.js:76:5)
at next (/Users/beamer30/projects/wevo/node_modules/express/lib/router/route.js:100:13)
at Route.dispatch (/Users/beamer30/projects/wevo/node_modules/express/lib/router/route.js:81:3)
at Layer.handle [as handle_request] (/Users/beamer30/projects/wevo/node_modules/express/lib/router/layer.js:76:5)
at /Users/beamer30/projects/wevo/node_modules/express/lib/router/index.js:227:24
有关如何使其工作的任何想法? 正确的做法是什么?
postAsync
。 - Benjamin Gruenbaumrequest.getAsync("fooBar").spread(function(resp, body)
并在那里访问它,或者使用.get(1)
来获取第二个参数,然后再使用then
。 - Benjamin Gruenbaum