【发布时间】:2017-08-14 13:33:44
【问题描述】:
我正在使用带有 TypeScript 的 Angular 2 并尝试使用 Facebook SDK 包装器。
我需要循环解析 Facebook 数据。不知何故,我的承诺数组没有解决。但是当我记录来自 api 调用的响应时,一切似乎都很好。 所以我在处理 Promise 时做错了。
承诺函数:
getOrgData(): Promise<any> { // I ONLY NEED TO STORE THE ORGANISATION IDS, DONT NEED FB API FOR THAT ... ??? I DO NEED THE CATEGORIES, PLACE_TOPICS, EMAILS, ...
let promiseArray: Array<any> = []
for (var o in this.per50) {
promiseArray.push(new Promise((resolve,reject) =>
this._facebookService.api('/?ids=' + this.per50[o] + '&fields=id,name,category,category_list,place_topics,place_type,emails,phone,location&access_token='+ this.access_token)
.then(
(resp) => {
console.log(resp);
resolve(true)
},
(error) => this.errorMessage = error
)
));
}
return Promise.all(promiseArray);
}
我这样称呼它:
this.getOrgData().then(
resp => console.log(resp),
error => console.log(error),
)
for 循环的原因是 Facebook api 调用一次只能处理 50 个项目,所以我必须创建一个包含最多 50 个项目的数组的对象。
所以foreach array of 50 我正在拨打 Facebook 电话。一切正常……只是 Promise 数组似乎没有得到解决。有人有想法吗?
我对 Promises 并没有真正的经验,我更喜欢 Observables,但是这个 Facebook SDK Wrapper 可以与 Promises 一起使用......
--------------已解决---- ------------
显然,promise 运行良好,但我没有发现 Facebook Api 调用的错误,所以我从未参与 Facebook 调用的 then(),所以没有解决问题,我的错。
【问题讨论】:
标签: angular promise facebook-javascript-sdk angular-promise