Skip to content

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

Open
@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/[email protected]@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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions