2
我的代碼是下面的:使用異步/等待而不巴貝爾-填充工具
@action async login(payload){
try {
this.loginLoading = true
const data = await request('/admin/login', {
method: 'post',
data: payload
})
this.logined = true
localStorage.setItem('token', data.token)
this.loginLoading = false
} catch (error) {
console.log(error)
message.error('login failed')
this.logined = false
this.loginLoading = false
}
巴貝爾-填充工具將變換上面的代碼:
return _regenerator2.default.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.prev = 0;
this.loginLoading = true;
_context.next = 4;
return (0, _request2.default)('/admin/login', {
method: 'post',
data: payload
});
case 4:
data = _context.sent;
this.logined = true;
localStorage.setItem('token', data.token);
this.loginLoading = false;
_context.next = 16;
break;
case 10:
_context.prev = 10;
_context.t0 = _context['catch'](0);
console.log(_context.t0);
_message2.default.error('login failed');
this.logined = false;
this.loginLoading = false;
case 16:
case 'end':
return _context.stop();
}
}
變換代碼將重命名變量難以閱讀和在使用源圖的chrome devl-tool中調試,實際上最新的chrome是支持async/await語法的,所以我不想在開發中使用babel-polyfill。
但是,如果刪除巴別塔,填充工具,將拋出regeneratorRuntime is not defined.
babel-polyfill不會轉換您的文件,它是webpack配置中的babel-loader。你嘗試刪除它嗎? – Pavlo