如何转换箭头功能?

时间:2019-12-25 21:03:03

标签: javascript

我不知道如何将该箭头功能转换为IE兼容功能。我真的很感谢有人可以为此提供解决方案:

const store = window.WebChat.createStore({}, ({ dispatch }) => next => async action => {
                        if (action.type === 'DIRECT_LINE/POST_ACTIVITY') {
                            // Mocking data to be sent
                            const userId = 'xyz789';
                            const payloadUserContext = action.payload;

                            action = window.simpleUpdateIn(
                                action,
                                ['payload', 'activity', 'channelData'],
                                () => ({
                                    'personId': userId,
                                    'domain': $.urlParam('d'),
                                    'environment': window.location.host,
                                    'userContext': payloadUserContext
                                })
                            )
                        }
                        return next(action);
                    });

2 个答案:

答案 0 :(得分:0)

只需使用https://babeljs.io/

var store = window.WebChat.createStore({}, function (_ref) {
      var dispatch = _ref.dispatch;
      return function (next) {
        return async function (action) {
          if (action.type === 'DIRECT_LINE/POST_ACTIVITY') {
            // Mocking data to be sent
            var userId = 'xyz789';
            var payloadUserContext = action.payload;
            action = window.simpleUpdateIn(action, ['payload', 'activity', 'channelData'], function () {
              return {
                'personId': userId,
                'domain': $.urlParam('d'),
                'environment': window.location.host,
                'userContext': payloadUserContext
              };
            });
          }

          return next(action);
        };
      };
    });

答案 1 :(得分:0)

您可以使用此在线babel转译器https://babeljs.io/repl(使用转译器将代码从一个版本转换为另一个版本,在这种情况下,我们希望从es6转换为es5)。

您可以在https://www.w3schools.com/js/js_versions.asp

处查看对ES浏览器的支持。

编辑:

在网上闲逛时,我发现babel会产生您可能不想使用的结果(至少对于使用async / await定义的功能而言)。

您可以做的是使用babel进行转换,然后将剩下的异步/等待方式更改为.then和.catch。

例如,

const someAsyncRequest = () => new Promise((resolve) => {
  setTimeout(() => {
    resolve("Responding")
  }, 1000)
})

const myAsyncFunction = async () => {
  console.log("Making request")
  const result = await someAsyncRequest()
  console.log(result)
  console.log("Done!")
}

function myIE9AsyncFunction() {
  console.log("Making request")
  someAsyncRequest()
    .then(function (result) {
      console.log(result)
      console.log("Done!")
    })
    .catch(function (error) {
      console.log("What the... ", error)
    })
}

myAsyncFunction()
myIE9AsyncFunction()

相关问题