Немедленно вызванная именованная функция - babel vs машинопись - PullRequest
0 голосов
/ 16 ноября 2018

Когда я использую машинопись для компиляции этой функции, она работает нормально. Но когда я использую babel с плагином для машинописи, он говорит: checkForRenewedToken is not defined

let data;
let newToken;
await new Promise(resolve => {
(async function checkForRenewedToken() {
        newToken = getToken()
        if (!newToken) {
            setTimeout(checkForRenewedToken, 1000);  <--- checkForRenewedToken is not defined
        } else {
            data = await doCall(newToken);
            resolve(data);
        }
    })();
});
return data;

Чтобы Бабел был счастлив, я должен изменить это так:

let data;
let newToken;
await new Promise(resolve => {
    const checkForRenewedToken = async () => {
        newToken = getToken()
        if (!newToken) {
            setTimeout(function () {
                checkForRenewedToken(); <--- now it's happy
            }, 1500);
        } else {
            data = await doCall(newToken);
            resolve(data);
        }
    };
    checkForRenewedToken();
});
return data;

Почему машинопись может скомпилировать это нормально, а babel с @babel/preset-typescript плагином - нет?

...