Машинопись: LocalForage.getItem () неверен? - PullRequest
0 голосов
/ 25 октября 2018

При выполнении кода ниже я получаю следующую ошибку:

Аргумент типа '(queue: []) => Promise |Обещание ' нельзя назначить параметру типа ' (значение: {}) => 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>;

Как видите, он очень гибкий, почти все значения объявляются во время выполнения.

...