workerize-loader icon indicating copy to clipboard operation
workerize-loader copied to clipboard

Failed to execute 'postMessage' on 'DedicatedWorkerGlobalScope': function transformRequest(data, headers) { normalizeHeaderName(headers, 'Accept'); normalizeHeaderName(...<omitted>... } could not be cloned.

Open CurryChou777 opened this issue 4 years ago • 1 comments

I query a large Firebase collection in my app. I'd like to use axios in my app. But it is wrong

` // worker.js

import axios from "axios"; import 'regenerator-runtime';

export async function expensive() { const res = await axios.get('https://vdata.amap.com/tiles?mapType=normal&v=3&style=5&key=f97efc35164149d0c0f299e7a8adb3d2&version=1.4.17&rd=2&flds=roadlabel,poilabel&t=9,432,204;9,436,204;9,432,201;9,436,201;9,432,203;9,436,203;9,433,204;9,435,204;9,432,202;9,436,202&lv=9&key=f97efc35164149d0c0f299e7a8adb3d2&preload=0'); console.log(res) return res; } ` When I run the worker as follows:

// app.js import Worker from 'workerize-loader!./worker';

` let instance = worker()

instance.expensive().then(data => {
  console.log(`${data}`)
})

`

Failed to execute 'postMessage' on 'DedicatedWorkerGlobalScope': function transformRequest(data, headers) { normalizeHeaderName(headers, 'Accept'); normalizeHeaderName(...... } could not be cloned.

Is it a bug in workerize or is it me doing something wrong?

CurryChou777 avatar Nov 05 '21 06:11 CurryChou777

I had the same issue and it appears that it is caused by axios while trying to clone the whole response response object with all functions etc. which cannot be cloned for security reasons. If you however return res.data in the worker instead of res it should work.

jonsalvas avatar Jan 18 '22 10:01 jonsalvas