我需要写一个自定义promise
。我试过了,如下图所示。但问题是如何得到recommendationCacheUrls
值后内核也解决了?即fileTransfer.download
承诺。解析内心也
setNewCacheUrls(providedUrls: any, nativeURL: string): Promise<any> {
return new Promise((resolve, reject) => {
let recommendationCacheUrls = [];
_.forEach(providedUrls, (url) => {
const fileTransfer: TransferObject = this.transfer.create();
fileTransfer.download(url.url, nativeURL + url.name).then((entry) => {
recommendationCacheUrls.push({ name: url.name, url: entry.toURL() });
}, (error) => {
console.error('error: ' + error);
});
});
resolve(recommendationCacheUrls);
});
}
的阵列,而不是使用'forEach'用'push' - 使用map'的'的组合和'Promise.all' - 然后你不必编写一个不符合PromiseA +标准的自定义承诺实现 –
如果你想要更简单的更改,你也可以'解析(Promise.all(recommendationCacheUrls))' –