Javascript AngularJS2:如何调试服务调用?(es6语法)

Javascript AngularJS2:如何调试服务调用?(es6语法),javascript,angularjs,angular,ecmascript-6,angular2-services,Javascript,Angularjs,Angular,Ecmascript 6,Angular2 Services,情况: export class ListService { getList() { return Promise.resolve(LIST); } } 我只是在学英语。我想调试对服务的调用 正如我在视图中看到的那样,该服务已被正确调用 我还想记录保存结果的变量的内容,但它并没有像我所希望的那样工作 服务: export class ListService { getList() { return Promise.

情况:

export class ListService 
{
    getList() 
    {
        return Promise.resolve(LIST);
    }
}
我只是在学英语。我想调试对服务的调用

正如我在视图中看到的那样,该服务已被正确调用

我还想记录保存结果的变量的内容,但它并没有像我所希望的那样工作

服务:

export class ListService 
{
    getList() 
    {
        return Promise.resolve(LIST);
    }
}
调用(来自列表组件):

日志尝试1:

export class ListService 
{
    getList() 
    {
        return Promise.resolve(LIST);
    }
}
list
是包含项目列表的变量。在视图中,它正确地显示了内容。因此,我希望记录它并查看其内容

getList() 
{
    this._listService.getList().then(list => this.list = list);
    console.log(list)
}
但当我得到这个错误时:

EXCEPTION: ReferenceError: list is not defined in [null]
日志尝试2:

export class ListService 
{
    getList() 
    {
        return Promise.resolve(LIST);
    }
}
正在尝试获取正确的语法:

getList() 
{
    this._listService.getList().then(list => this.list = list);
    console.log(this.list)
}
现在没有错误。但在控制台中,它显示
未定义
。 但是服务已经被调用了。所以它应该包含内容

问题:

export class ListService 
{
    getList() 
    {
        return Promise.resolve(LIST);
    }
}
考虑到我使用的是Angular2-Ecmascript 2016

记录服务调用的正确语法是什么


谢谢大家!

实际上
这个.list
是在
then
方法中注册的回调中设置的。所以你应该用这样的东西:

getList() 
{
  this._listService.getList().then(list => {
    this.list = list;
    console.log(list);
    console.log(this.list);
  });
}

如果您放置
console.log(this.list)
正确的承诺,结果可能不存在,因此
此.list
可能没有设置…

事实上
此.list
是在
然后
方法中注册的回调中设置的。所以你应该用这样的东西:

getList() 
{
  this._listService.getList().then(list => {
    this.list = list;
    console.log(list);
    console.log(this.list);
  });
}

如果您放置
console.log(this.list)正确的承诺,结果可能不会出现,所以
这个。列表
可能不会设置…

可能的重复,这是关于Angular2语法的更具体的问题,主要问题是相同的,这不是特定于任何语法,而是关于异步任务如何工作以及如何在javascript中使用它(顺便说一句,这不是Angular2语法,而是新的Javascript标准Ecmascript 6)是的,我知道了。但是如果你只是想知道Angular2的语法,你会在这里直接找到答案。我编辑了标题。为了使它更具体地回答这个问题。可能重复的是,这是关于Angular2语法的更具体的问题。主要问题是相同的,这不是特定于任何语法,而是关于异步任务如何工作以及如何在javascript中使用它(顺便说一句,这不是Angular2语法,而是Ecmascript 6新的javascript标准)是的,我知道了。但是如果你只是想知道Angular2的语法,你可以在这里直接找到答案。我编辑了标题。为了让它更具体地回答这个问题。