Как преобразовать этот код в обещание и использовать пакет запроса для вызова API? - PullRequest
0 голосов
/ 01 апреля 2020

Мне нужны обещания назвать этот код. Я пытался использовать обещание, но не мог понять, как использовать request(reqData).pipe(gunzip), а также как вернуть значение selectedModel, чтобы использовать это значение, возвращенное при вызове функции. Как я могу это сделать?

import { request } from "https";
const request = require("request");
const zlib = require("zlib");
let code = "X300_P_MT";
function Model(code) {
  //DMSMODELCODE
  let reqData = {
    url:
      "https://trinitygateway.azure-api.net/syouv2_0_td_prod/api/Masters/Book/GetModels",
    method: "get",
    headers: {
      "Accept-Encoding": "gzip",
      "Ocp-Apim-Subscription-Key": "db0cd261fd774df4935527298028f02b",
      "Content-Type": "application/json"
    }
  };
let gunzip = zlib.createGunzip();
let json = "";
  gunzip.on("data", function(data) {
    json += data.toString();
  });
  gunzip.on("end", function() {
    // console.log("Data : ", JSON.parse(json));
    let res = JSON.parse(json);
    let response = res.ResponseData;
    response.forEach(element => {
      if (element.DMSModelCode == code) {
        let SelectedModel = {
          DMSModelCode: element.DMSModelCode,
          name: element.Name,
          VehicleTypeId: element.VehicleTypeId,
          TypeName: element.TypeName,
          isDefault: element.isDefault,
          IsActive: element.IsActive,
          OrderNo: element.OrderNo,
          LargeImgPath: element.LargeImgPath,
          FuelType: element.FuelType,
          TransmissionType: element.TransmissionType,
          TransmissionTypeName: element.TransmissionTypeName,
          ModifiedDate: element.ModifiedDate,
          DisplayName: element.DisplayName,
          ModelCode: element.ModelCode,
          ProductDivision: element.ProductDivision,
          IsCampaignVehicle: element.IsCampaignVehicle,
          IsActive: element.IsActive,
          IsPersonalVehicle: element.IsPersonalVehicle
        };
        //return SelectedModel;
      }
    });
    //console.log(res.ResponseData);
  });
  request(reqData).pipe(gunzip);
}
...