如何在另一个nodejs脚本中获取一个node.js方法的返回值?

时间:2018-01-23 15:33:23

标签: node.js apigee

我在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);
            }
        });

请告诉我这是什么问题?

1 个答案:

答案 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;
})