打字稿:为什么内部函数没有解析外部函数的参数?

时间:2017-07-23 14:35:10

标签: javascript promise closures arrow-functions

请查看以下代码:

function myfunc(name: string): void {
        var p = getPromise(**url**):Promise<string>;
        p.then((data:string) => {
           console.log(data);
           console.log(name);
        });
    }

myfunc("John");

当我运行代码时,出现以下错误:

  

未捕获的ReferenceError:未定义名称

我不明白为什么。箭头功能在大功能内 'myfunc',因此,箭头函数应该可以访问包装函数的变量。为什么不在这种情况下发生?

1 个答案:

答案 0 :(得分:0)

我刚刚使用let将p的声明更改为更多的打字稿。其余的应该是一样的。

function myfunc(name: string): void {
    let p:Promise<string> = getPromise(**url**);
    p.then((data:string) => {
       console.log(data);
       console.log(name);
    });
    return p;
}