Использовать данные, возвращаемые одним запросом выборки в нескольких модулях? - PullRequest
0 голосов
/ 05 ноября 2018

Я пытаюсь использовать данные, возвращаемые одним запросом на выборку, в нескольких модулях, которые используют эти данные. По сути, теперь у меня есть API, который возвращает JSON, который будет использоваться для заполнения раскрывающегося списка элементов, а также для получения дополнительной информации, связанной с элементом, когда пользователь делает выбор из этого раскрывающегося списка.

У меня есть 3 модуля: один экспортирует функцию, которая делает запрос на выборку и возвращает обещание, и два других импортируют эту функцию и используют синтаксис обещание.then () для заполнения соответствующих переменных с помощью обратных вызовов при разрешении , Это позволяет сделать два запроса на выборку при запуске приложения.

Извините, если это вопрос новичка, есть ли способ сделать один запрос на выборку и использовать возвращенные данные в нескольких модулях, когда он разрешается?

Ценю любую помощь

1 Ответ

0 голосов
/ 06 ноября 2018

API-вызов выполняется некоторой функцией, и вам нужно вызывать функцию всякий раз, когда вам понадобится какая-то операция, например:

API callFile.js:

function randomNumbers() {
    let num = parseInt(Math.random()*10000);  // In place of API fetch call just to simulate.
    return num; 
}

Теперь, если это же сгенерированное случайное число необходимо в другом месте, нужно сохранить его в другом месте, где он не сможет получить к нему доступ, и когда-либо у звонка будет другой номер.

часть API callFile.js:

class Storage {
    constructor() {
        this.num;
    }
    getNumber() {
        if(this.num)
           return this.num;

        this.num = randomNumbers();
        return this.num;
    }
}

module.exports = new Storage();

first.js:

let Storage = require('callFile');

function one() {
    let num = Storage.getNumber();
}

second.js:

let Storage = require('callFile');

function two() {
    let num = Storage.getNumber();
}

Создавая такой класс, вы получаете одни и те же данные везде, а API вызывается только один раз. При необходимости сбросить или вызвать API снова, можно даже передать какой-то элемент в пустое хранилище и снова вызвать API.

...