Tôi đang gặp rắc rối lớn khi các polyfill của tôi hoạt động ở Edge. Tôi đã cố gắng làm theo tài liệu với nhiều nỗ lực khác nhau đều không hoạt động. Nó dường như là lời hứa. Cụ thể là không hoạt động. Điều này xảy ra trong một mô-đun vuex vì vậy tôi đã thử thêm vuex vào transpileDependencies trong vue.config nhưng không gặp may.
Babel.config.js của tôi:
module.exports = {
presets: [['@vue/cli-plugin-babel/preset', {
useBuiltIns: 'entry',
}]],
};
Trong tệp main.js của tôi, tôi có hai lần nhập sau ở trên cùng:
import 'core-js/stable';
import 'regenerator-runtime/runtime';
Vue.config.js của tôi
// eslint-disable-next-line import/no-extraneous-dependencies
const webpack = require('webpack');
const isProd = process.env.NODE_ENV === 'production';
module.exports = {
configureWebpack: {
// Set up all the aliases we use in our app.
plugins: [
new webpack.optimize.LimitChunkCountPlugin({
maxChunks: 6,
}),
],
},
css: {
// Enable CSS source maps.
sourceMap: !isProd,
},
transpileDependencies: ['vuex'],
};
Lưu ý như đã đề cập ở trên, tôi đã thử cả có và không có transpileDepedencies. Nó nói đây vue / babel-cài sẵn ứng dụng mà es7.promise.finally
được bao gồm như là một polyfill mặc định
Phiên bản:
- Microsoft Edge: 44,18
- Microsoft EdgeHTML 18,18362
- @ vue / cli-plugin-babel ":" ^ 4.1.2 "
- "lõi-js": "^ 3.6.4"
- "trình phục hồi-thời gian chạy": "^ 0.13.3"
Cập nhật 13/02
Vì vậy, tôi đã cố gắng gõ Promise.prototype trên trang web của mình theo cạnh và có vẻ như nó là polyfill:
Vì vậy, hiện tại tôi đang điều tra nếu một phần trong chuỗi của tôi (axios / vue axios) không trả lại lời hứa. Vì nó đang hoạt động trong chrome Tôi nghi ngờ rằng một phần của chuỗi không được điền chính xác?
Đây là toàn bộ chuỗi của tôi:
/* VUEX MODULE ACTION */
[a.ALL_CUSTOMERS](context) {
context.commit(m.SET_CUSTOMER_LOADING, true);
CustomerService.getAll()
.then(({ data }) => {
context.commit(m.SET_CUSTOMERS, data);
})
.finally(() => context.commit(m.SET_CUSTOMER_LOADING, false));
},
/* CUSTOMER SERVICE */
import ApiService from '@/common/api.service';
const CustomerService = {
getAll() {
const resource = 'customers/';
return ApiService.get(resource);
},
...
}
/* API SERVICE */
import Vue from 'vue';
import axios from 'axios';
import VueAxios from 'vue-axios';
const ApiService = {
init() {
Vue.use(VueAxios, axios);
let baseUrl = process.env.VUE_APP_APIURL;
Vue.axios.defaults.baseURL = baseUrl;
},
setHeader() {
Vue.axios.defaults.headers.common.Authorization = `Bearer ${getToken()}`;
},
get(resource) {
this.setHeader();
return Vue.axios.get(`${resource}`);
},
...
}
*Version number used for Edge is based on the number of EdgeHTML rather than Edge itself. This is because EdgeHTML is the engine for Edge that is related to feature support change.
finally()
trên Promise kể từ v18