我在Apigee Node.js ABC和Node.js DEF中有2个节点.js脚本。现在 ABC 是主脚本,DEF 是对象脚本。我在 DEF 中有一个返回状态代码的方法 DEFMethod。我试图在ABC中调用DEFMethod,DEFMethod返回一个应该传递给ABC的值。在ABC获得该值后,它会相应地进行。但是我在传递值时遇到问题。检查始终未定义。
这就是我在ABC脚本中称呼DEFMEthod
的方式ds = new DEF(req, resp);
check = ds.DEFMethod(select_contact,resp);
DEF 脚本
function(error, response, body)
{
if(response.statusCode == 200)
{
//go back
console.log("Response:",body);
console.log("Status Code:",response.statusCode);
return resp.sendStatus(200);
}
else
{
console.log("Response:",body);
console.log("Status Code:",response.statusCode);
return resp.sendStatus(404);
}
});
请让我知道问题是什么?
您可以使用 Promise 异步返回您需要的值:
例:
DEF 脚本
function(error, response, body) {
return new Promise((resolve, reject) => {
if (response.statusCode == 200) {
//go back
console.log("Response:", body);
console.log("Status Code:", response.statusCode);
resolve(resp.sendStatus(200));
} else {
console.log("Response:", body);
console.log("Status Code:", response.statusCode);
reject(resp.sendStatus(404));
}
});
})
ABC 脚本
ds.DEFMethod(select_contact, resp).then(result => {
check = result;
})