developit / developit/workerize

non-enumerable object properties are lost after passing an object to workerize.

Offen
#34 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
JavaScript
Sterne
4.4k
Forks
87
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

Here's a real life example:

``` js
// The main thread
import Worker from 'workerize-loader!./workers';
import getCompaniesFromFirebase from './getCompaniesFromFirebase';

const worker = Worker();

const {
filterCompaniesByTypes
// Other modules
} = worker;

(async () => {
const companies = await getCompaniesFromFirebase();
// typeof companies[0].id === "string" // true

const companiesFiltered = await filterCompaniesByTypes(companies, ['company-type-1', 'company-type-2']);
// typeof companiesFiltered[0].id === "string" // false
// typeof companiesFiltered[0].id === "undefined" // true
})();
```

``` js
// The worker
import intersection from 'lodash/intersection';

export const filterCompaniesByTypes = (companies, typesToFilerBy) => {
return companies.filter(({ types, id }) => {
// typeof id === 'undefined' // true
return intersection(types, typesToFilerBy).length > 0;
});
};
```

In the given example the `getCompaniesFromFirebase()` function returns an array of objects. Each object has some properties, inluding the `id` property that is non-enumerable.

After executing the `filterCompaniesByTypes()` function (which is a web worker function) I receive a filtered array. All `id` properties are gone.

---
if it's the desired behaviour (or an unpleasant, but expected, side-effect) not a bug, then it would be good to mention it in the readme.

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.