При выполнении кода ниже я получаю следующую ошибку:
Аргумент типа '(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>;
Как видите, он очень гибкий, почти все значения объявляются во время выполнения.