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的语法,你可以在这里直接找到答案。我编辑了标题。为了让它更具体地回答这个问题。