我有一个包含诺言的函数。该函数执行HTTP请求,我想解决该问题,并将响应作为变量中的值返回。
function sendCommand(auth, playerId, command) {
return new Promise((resolve, reject) => {
request.post(`https://test.com/${playerId}/command`,{
headers: { Authorization: auth },
json: {
"arg": `${command}`
}
}, function status(err, response, body) {
if (response.statusCode === 200) {
resolve(body)
} else {
reject(err)
}
}
)
})
}
我从其他文件运行此功能,所以请执行以下操作:
module.exports = {
doSomething: (playerId, command) => {
loginHelper.getToken().then(token =>
sendCommand(token, playerId, command))
}
}
在另一个文件上,我想将已解决的响应存储在这样的变量中:
const commandHelper = require(__helpers + 'command-helper')
let test = commandHelper.doSomething(playerId, 'command')
我希望测试变量包含响应数据。
答案 0 :(得分:1)
您应该在异步功能中使用await 示例:
function hi(){
return new Promise((res,rej)=>{
res("hi");
}
}
async function see(){
var hiStr = await hi();
console.log(hiStr); // hi
}