Skip to content

"ReferenceError: list is not defined": The outside variable cannot be used/recognized during mapping. #228

@zhengger

Description

@zhengger

I want to push value to variable list during mapping. It ends in the error "ReferenceError: list is not defined".
I'm using typescript and below is my code.

import Parallel from 'paralleljs';
import { performance } from "perf_hooks";
import * as _ from "lodash";

const l = _.range(10,20);
const p = new Parallel(l);

const log = function () { console.log(arguments); };
const current_encode_Time_before = performance.now();
// One gotcha: anonymous functions cannot be serialzed
// If you want to do recursion, make sure the function
// is named appropriately

const list: Array<number> = [];  // I want to push new value to list during mapping 

function fib(n: number): number{
    let num: number = 0;
    num = n < 2 ? 1 : fib(n - 1) + fib(n - 2);
    list.push(num);
    return num;
};

p.map(fib).then(() => {
    const current_encode_Time_later = performance.now();
    console.log(
        "Parra: Test_Time difference",
        (current_encode_Time_later - current_encode_Time_before) / 1000
    );
});

The error is:

ReferenceError: list is not defined
    at fib (eval at <anonymous> (/Users/zhen/dev/simple/node_modules/_paralleljs@1.1.0@paralleljs/lib/eval.js:7:5), <anonymous>:4:5)

Thanks a lot!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions