Как экспортировать переменную в javascript внутри функции? - PullRequest
0 голосов
/ 10 июля 2020

У меня есть следующая функция:

export function request(
  searchKey,
  apiEndpoint,
  path,
  params,
  { additionalHeaders } = {}
) {
  const method = "POST";
  return _request(method, searchKey, apiEndpoint, path, params, {
    additionalHeaders
  }).then(response => {
    return response
      .json()
      .then(json => {
        var my_json = update(params)
        const result = { response: response, json: json };
        return result;
      })
  });
}

Я хочу экспортировать переменную my_json в другой. js файл. Я уже пробовал использовать export { my_json }, но он работает, только если я делаю это в верхней части документа, что в моем случае не работает. Есть у кого-нибудь идеи?

1 Ответ

0 голосов
/ 10 июля 2020

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

export function request(
  searchKey,
  apiEndpoint,
  path,
  params,
  { additionalHeaders } = {},
  callback
) {
  const method = "POST";
  return _request(method, searchKey, apiEndpoint, path, params, {
    additionalHeaders
  }).then(response => {
    return response
      .json()
      .then(json => {
        var my_json = update(params);
        callback(my_json);
        const result = { response: response, json: json };
        return result;
      })
  });
}

, а в другом файле определите обратный вызов функции, например:

function callback(data){
    // assign this data to another variable so that one can use it
    console.log(data)
}

, и при вызове функции запроса добавьте еще один аргумент в качестве обратного вызова.

Надеюсь, это поможет.

...