我正在使用superagent从Node.s进行HTTP API调用,这是我的代码现在的样子:
async function getProjectParameterValue(projectId, parameter) {
let projectParamsUrl = "some/endpoint" + projectId + "/parameters/";
let url = "http://baseUrl/" + projectParamsUrl + parameter;
return await superagent.get(url).auth(userName, password)
.type('json')
.accept('json')
.then(response => {
return response.body;
})
.then(responseBody => {
return responseBody;
});
}
在这种情况下,函数getProjectParameterValue
返回一个promise,在外部调用它后必须将其解析,如下所示:
getProjectParameterValue("myProjectId", "someParameter")
.then(responseBody => {
log.info(responseBody);
});
我正在寻找使函数getProjectParameterValue
直接返回超级代理响应对象的方法。有什么办法可以做到这一点?
答案 0 :(得分:0)
您可以使用以下给出的承诺来实现这一目标。
function getProjectParameterValue(projectId, parameter) {
let projectParamsUrl = "some/endpoint" + projectId + "/parameters/";
let url = "http://baseUrl/" + projectParamsUrl + parameter;
return new Promise(function(resolve, reject) {
superagent.get(url).auth(userName, password)
.type('json')
.accept('json')
.then(response => {
//you can manupulate result set as per requirements.
return response.body
})
.then(result => {
resolve(result)
});
};
});
}
并调用如下函数:
(async () => {
const responseBody = await getProjectParameterValue("myProjectId", "someParameter")
})();