0
我试图围绕承诺包围我的头,但到目前为止我似乎无法得到简单的示例工作。这里它是一个代码来请求服务器的JSON:请求-json与蓝鸟承诺的奇怪行为
module.exports = function (app, options) {
var promise = require('bluebird');
var request = require('request-json');
var module = {
url: options.url,
httpClient: promise.promisifyAll(request.createClient(options.url))
};
module.getSample = function() {
return this.httpClient.getAsync('sample/')
.then(function(error, response, body) {
console.log(body);
})
.catch(function(e) {
console.log('error');
console.log(e);
});
};
return module;
};
但是当我这样称呼它:
var backendClient = require('./utils/backendClient.js')(app, {
url: 'http://localhost:8080/'
});
backendClient.getSample()
在运行时我得到一个错误说“[语法错误:意外的令牌O]”。没有承诺的版本工作正常。我错过了什么?
你从哪里得到语法错误,在哪个文件的哪一行? – Bergi
编辑了问题 – chester89
我习惯于从JSON.parse中看到'Unexpected token o' - 你确定你得到了一个JSON吗?另外一个promise只能用一个值来解析,所以你的'error,response,body'签名是不正确的,看最新的最简单的方法就是'console.log(arguments)',看看解析的对象是什么 – Madd0g