[英]How do I convert this Arrow Function?
我無法弄清楚如何將此箭頭函數轉換為 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);
});
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);
};
};
});
您可以使用這個在線 babel 轉譯器https://babeljs.io/repl (轉譯器用於將代碼從一個版本轉換為另一個版本,在這種情況下我們希望從 es6 轉到 es5)。
您可以在此處查看 ES 瀏覽器支持https://www.w3schools.com/js/js_versions.asp
編輯:
我在網上閑逛,我發現 babel 產生了一個你可能不想使用的結果(至少對於用 async/await 定義的函數)。
你可以做的是用 babel 進行轉譯,而 async/await 剩下的任何東西,把它改成 .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()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.