0
我正在试图在nodejs中创建一个模块,所以我创建了一个名为Client的对象,该对象具有构造函数和一些方法。Nodejs只有在对象初始化后才执行对象的方法
问题是构造函数运行异步请求(使用请求),并且方法需要构造中的东西才能被正确调用。
我如何使构造器同步?
function Client(id){
var token;
o = {
method: 'POST',
url: url + '/getToken',
headers: headers,
json: true,
body: id }
request(o).then(function(body) {
token = JSON.parse(body).token
})
function getValue(){
return new Promise(function(ff, rj) {
o = {
method: 'GET',
url: url + '?token=' + token,
headers: headers
}
request(o).then(function(body) {
ff(JSON.parse(body).value)
})
})
}
return{
getValue
}
}
我想要做这样的事情
var client = Client(id)
client.getValue().then(console.log)
,但是由于要求异步的,当时的GetValue返回一个错误(令牌不具有价值尚) 我怎样才能做到这一点?谢谢