执行下面的代码时,出现以下错误:
'(队列:[])类型的参数=> Promise |承诺” 是 不可分配给类型'(value:{})=> void | PromiseLike'。
return localforage.getItem('queue').then((queue: []) => {
console.log("Queue: ", queue);
// If empty, nothing to do
if (!queue.length) return Promise.resolve();
// Else, send the requests in proper order...
console.log('Sending ', queue.length, ' requests...');
return sendInOrder(queue).then(() => localforage.setItem('queue', []));
});
我在indexedDB中编写了一系列请求。在此功能中,我通过重新创建请求顺序并将其一一发送来刷新缓存。该请求本身是从IndexedDB存储中重新创建的。
这是 LocalForage 的问题吗? 我知道我可以尝试通过以下方法来绕过此问题:
const localforageQueneResponse: PromiseLike<[]> = localforage.getItem('queue');
return localforageQueneResponse.then((queue) => {
...
但是在这种情况下,不是<Promise<Response>>
的函数,而是<PromiseLike<Promise<Response>>>
。而且我会得到新的错误。
此外,以下是getItem
方法的声明方式:
getItem<T>(key: string, callback?: (err: any, value: T) => void): Promise<T>;
您可能会看到,它非常灵活,几乎所有值都在运行时声明。