【发布时间】:2018-09-13 03:39:37
【问题描述】:
出现错误。则不是函数。
当我调用一个得到一些东西的函数时:
Store.BackgroundFinalizer().then(function() {
console.log('DO ALARM when Data is there');
alarmNextEpisode();
});
功能:
static BackgroundFinalizer() {
const items = Store.getStoredItems();
items.forEach(function (item) { // 0.1
if (new Date(item.episode) < new Date()) {
let tvmaze = new Tvmaze();
tvmaze.getData(item.name).then(data => {
tvmaze.getEpisodeData(data.data.id).then(data => {
let newdate = tvmaze.sortByNextEpisode(data);
Store.removeStoreItem(item.name);
Store.storeItem2(item.name, newdate);
});
});
} else {}
});
return 'promise'
}
我需要返回一个承诺吗?即使功能本身不需要一个?怎么办?
【问题讨论】:
-
BackgroundFinalizer()会返回一个字符串。你不能把它当作一个承诺......如果不是。 -
return 'promise'不返回承诺,它返回一个字符串。那有什么用?如果你需要返回一个实际的 Promise,返回一个实际的 Promise,不要以为 JavaScript 能明白你在这里的意思。 -
我应该回报什么承诺?我实际上不需要返回任何东西。
-
@Medy 你需要知道什么时候完成吗?
-
@KevinB 不,我只是为了运行 alarmNextEpisode(); getEpisodeData 完成后
标签: javascript promise