2 API-вызова в одном JavaScript - PullRequest
0 голосов
/ 13 марта 2020

В настоящее время я пытаюсь сделать 2 разных вызова API друг за другом в 1 скрипте java / nodejs. Кажется, после того, как моя первая функция работает успешно, вторая вызывает ошибку со следующим:

FetchError: запрос на ошибку, причина: зависание сокета; введите: 'system', errno: 'ECONNRESET', код: 'ECONNRESET'

Ниже приведен фрагмент кода того, что я пробовал до сих пор:

const fetch = require("node-fetch");
const formData = require("form-data");
const fs = require("fs");
//const express = require("express");
var apiName = "<LOCAL SYSTEM FILE TO UPLOAD>";
var lookupName = "<LOCAL SYSTEM FILE TO UPLOAD>";
var accessToken = "Bearer <ACCESS TOKEN>";
var url = '<URL API #1>';
var url2 = '<URL API #2>;
var headers = {
    'Accept': 'application/json',
    'Authorization': accessToken,
};


const form = new formData();
const buffer2 = fs.readFileSync(lookupName);
const buffer = fs.readFileSync(apiName);


    const uploadAPI = function uploadAPI() {
        form.append("Content-Type", "application/octect-stream");
        form.append('file', buffer);

        fetch(url, {method: 'POST', headers: headers, body: form})
            .then(data => {
                console.log(data)
            })
            .catch(err => {
                console.log(err)
            });
    };



const uploadLookup = function uploadLookup() {
    form.append("Content-Type", "application/octect-stream");
    form.append('file', buffer2);

    fetch(url2, {method: 'PUT', headers: headers, body: form})
        .then(data => {
            console.log(data)
        })
        .catch(err => {
            console.log(err)
        });
};



if (!apiName !== true) {
    uploadAPI()
} else {}

if (!lookupName !== true) {

    console.log("Uploading Lookup File");
    uploadLookup()
} else {}

Я пытался с помощью " setTimeout "функция, которая, кажется, не работает так, как мне бы хотелось. Мое лучшее предположение, что каждый вызов API должен быть отдельным соединением сокетов? Мы ценим любую помощь в правильном направлении.

1 Ответ

0 голосов
/ 13 марта 2020
Promise.all([
    fetch(url),
    fetch(url2)
]).then(function (res) {
        // Get a JSON object from each of the responses
        return res.json();
    }).then(function (data) {
        // do something with both sets of data here
        console.log(data);
    }).catch(function (error) {
        // if there's an error, log it
    });

...