我在Apigee Node.js ABC和Node.js DEF中有2个node.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);
}
});
请告诉我这是什么问题?
答案 0 :(得分:0)
您可以使用Promises来异步返回所需的值:
示例:强>
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;
})