打字稿:LocalForage.getItem()不正确吗?

时间:2018-10-25 12:50:09

标签: typescript promise localforage

执行下面的代码时,出现以下错误:

  

'(队列:[])类型的参数=> 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>;

您可能会看到,它非常灵活,几乎所有值都在运行时声明。

0 个答案:

没有答案