Git Product home page Git Product logo

javascript-live-code's Introduction

Реализовать функцию создания URL с опциональными searchParams:

  • base - базовая часть URL, может представлять из себя как base, так и origin
  • pathname - путь, на который будет происходить запрос
  • searchParams - любое значение, соответствующее интерфейсу URLSearchParams

Пример использования:

makeUrl('http://server.com/api/', 'users', '?search=Alex')

makeUrl('http://server.com/', 'api/users', [['search', 'Alex']])

makeUrl('http://server.com/apii/', '/api')

Обработать различные состояния запроса с выводом каждого изменения

Дано:

  • идентификатор, хранящий текущее состояние запроса,
  • функция, изменяющая значение в идентификаторе на переданное,
  • функция, выводящая текст для переданного состояния.
let networkState = null,
  setNetworkState = (value) => ((networkState = value), networkState),
  getMessage = (state) => {
    switch (state) {
      case true:
        return 'Data is [Loading]'

      case false:
        return 'Data is [Loaded]'

      default:
        return `Message for state "${state}" is not defined`
    }
  }

Необходимо выполнить запрос до https://jsonplaceholder.typicode.com/todos, используя функцию из предыдущей задачи, запросив первые 10 элементов коллекции. Размер запрашиваемой коллекции задаётся при помощи поискового параметра_limit.

Несколько требований, касательно отслеживания состояния запроса:

  • при выполнении запроса, необходимо установить состояние "Загружается",
  • по его завершении изменить состояние на "Загружено",
  • также отловить ошибку и изменить состояние на "Ошибка",

Дополнительно:

  • указать изначальное состояние, когда ничего не происходит,
  • отловить состояние пользовательской отмены запроса (cancellation)

Ещё:

  • предложить и реализовать решение хранения сообщений для разных locale, к примеру: ru и en
  • выполнить частичное применение, используя функцию makeUrl, получив удобный интерфейс получения ссылок для pathname, не передавая base каждый раз.

javascript-live-code's People

Contributors

yurkimus avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.