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



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

相关内容

最新更新