• Как можно оптимизировать этот кусок кода?

    black1277
    @black1277
    Вольный стрелок
    export const getData = (axiosFunc, num, spinner = null) => (dispatch) => {
      dispatch(setSpinner(spinner));
      axiosFunc()
        .then((response) => {
          dispatch(setPosts(response.result, num));
        })
        .catch(console.log)
        .finally(() => {
          dispatch(closeSpinner());
        });
    };
    // примеры вызова
    getData (axiosGetBlog, 1, spinner)
    getData (axiosGetPubl, 2, spinner)
    getData (axiosGetMat, 3, spinner)
    Ответ написан
    Комментировать
  • Являются ли промисы асинхронными?

    bingo347
    @bingo347 Куратор тега JavaScript
    Crazy on performance...
    new Promise(resolve => {
      // здесь код выполняется синхронно
      resolve();
    }).then(() => {
      // здесь уже асинхронно, в ближайшем микротаске после вызова resolve выше
    });
    
    Promise.resolve().then(() => {
      // здесь тоже асинхронно, в ближайшем микротаске
    });


    много вычислений
    Это не про асинхронность.
    Асинхронность - это про кооперативную многозадачность, то есть промис может только отложить вычисления на потом, но они все равно заблокируют поток, который у JS всего один.
    А для "много вычислений" без блокирования основного потока, эти "много вычислений" нужно выносить в отдельный поток. В JS для этого есть воркеры. А вот уже результат от воркера можно ждать асинхронно.
    Ответ написан
    Комментировать
  • Что означает этот синтаксис handleChange = (name) => ({ target }) => {}?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    handleChange = (name) => ({ target }) => {
        this.setState({ [name]: target.value });
    };

    То же, что и:
    handleChange = function(name) {
        return function({ target }) {
            this.setState({ [name]: target.value });
        };
    };

    Или так:
    handleChange = function(name) {
        return function(obj) {
            this.setState({ [name]: obj.target.value });
        };
    };
    Ответ написан
    Комментировать