【发布时间】:2017-05-20 12:50:19
【问题描述】:
作为我上一个问题的后续问题(我无法迭代似乎已满的数组),我现在知道问题出在哪里,应该是列表不是刚开始用就满了。
然后我尝试使用 promise 等待任务异步执行,然后继续。
问题是,对我来说,promise 语法真的很糟糕,对于像我这样基本上从未在这个项目之外使用过 javascript 的人来说,这似乎太复杂了。
我有这个承诺:
var promise=new Promise(function(resolve,reject){
that.af.database.list('/users/'+that.authentificationService.getUserId()+'/favs'/*, { preserveSnapshot: true}*/)
.subscribe(snapshots=>{
snapshots.forEach(snapshot => {
//console.log(snapshot.label);
that.prefList.push(snapshot.label);
//this.prefList.push(snapshot.label);
});
});
console.log("promise = done");
return that.prefList;
});
(顺便说一句,那个 == 这个)
我得到了“完成”的打印,但我不知道这是否相关
然后我尝试在 promise 的 then 函数中做一些事情:
promise.then(function(result){ (...) }
我里面有多个console.logs,但实际上没有一个被执行。我做错了什么?
promise.catch(function(e){
console.log("catch entered");
console.log(e);
});
catch 也不会将任何内容记录到控制台。
【问题讨论】:
标签: javascript angularjs firebase promise angularfire2