rename to promiseInterval

このコミットが含まれているのは:
Shpuld Shpuldson 2020-09-04 11:19:53 +03:00
コミット 3fb35e8123
7個のファイルの変更15行の追加15行の削除

ファイルの表示

@ -5,7 +5,7 @@ import ChatMessage from '../chat_message/chat_message.vue'
import PostStatusForm from '../post_status_form/post_status_form.vue' import PostStatusForm from '../post_status_form/post_status_form.vue'
import ChatTitle from '../chat_title/chat_title.vue' import ChatTitle from '../chat_title/chat_title.vue'
import chatService from '../../services/chat_service/chat_service.js' import chatService from '../../services/chat_service/chat_service.js'
import { makeFetcher } from '../../services/fetcher/fetcher.js' import { promiseInterval } from '../../services/promise_interval/promise_interval.js'
import { getScrollPosition, getNewTopPosition, isBottomedOut, scrollableContainerHeight } from './chat_layout_utils.js' import { getScrollPosition, getNewTopPosition, isBottomedOut, scrollableContainerHeight } from './chat_layout_utils.js'
const BOTTOMED_OUT_OFFSET = 10 const BOTTOMED_OUT_OFFSET = 10
@ -288,7 +288,7 @@ const Chat = {
}, },
doStartFetching () { doStartFetching () {
this.$store.dispatch('startFetchingCurrentChat', { this.$store.dispatch('startFetchingCurrentChat', {
fetcher: () => makeFetcher(() => this.fetchChat({ fetchLatest: true }), 5000) fetcher: () => promiseInterval(() => this.fetchChat({ fetchLatest: true }), 5000)
}) })
this.fetchChat({ isFirstFetch: true }) this.fetchChat({ isFirstFetch: true })
}, },

ファイルの表示

@ -20,7 +20,7 @@ const api = {
state.fetchers[fetcherName] = fetcher state.fetchers[fetcherName] = fetcher
}, },
removeFetcher (state, { fetcherName, fetcher }) { removeFetcher (state, { fetcherName, fetcher }) {
state.fetchers[fetcherName]() state.fetchers[fetcherName].stop()
delete state.fetchers[fetcherName] delete state.fetchers[fetcherName]
}, },
setWsToken (state, token) { setWsToken (state, token) {

ファイルの表示

@ -3,7 +3,7 @@ import { find, omitBy, orderBy, sumBy } from 'lodash'
import chatService from '../services/chat_service/chat_service.js' import chatService from '../services/chat_service/chat_service.js'
import { parseChat, parseChatMessage } from '../services/entity_normalizer/entity_normalizer.service.js' import { parseChat, parseChatMessage } from '../services/entity_normalizer/entity_normalizer.service.js'
import { maybeShowChatNotification } from '../services/chat_utils/chat_utils.js' import { maybeShowChatNotification } from '../services/chat_utils/chat_utils.js'
import { makeFetcher } from '../services/fetcher/fetcher.js' import { promiseInterval } from '../services/promise_interval/promise_interval.js'
const emptyChatList = () => ({ const emptyChatList = () => ({
data: [], data: [],
@ -46,7 +46,7 @@ const chats = {
const fetcher = () => dispatch('fetchChats', { latest: true }) const fetcher = () => dispatch('fetchChats', { latest: true })
fetcher() fetcher()
commit('setChatListFetcher', { commit('setChatListFetcher', {
fetcher: () => makeFetcher(fetcher, 5000) fetcher: () => promiseInterval(fetcher, 5000)
}) })
}, },
stopFetchingChats ({ commit }) { stopFetchingChats ({ commit }) {

ファイルの表示

@ -1,5 +1,5 @@
import apiService from '../api/api.service.js' import apiService from '../api/api.service.js'
import { makeFetcher } from '../fetcher/fetcher.js' import { promiseInterval } from '../promise_interval/promise_interval.js'
const fetchAndUpdate = ({ store, credentials }) => { const fetchAndUpdate = ({ store, credentials }) => {
return apiService.fetchFollowRequests({ credentials }) return apiService.fetchFollowRequests({ credentials })
@ -13,7 +13,7 @@ const fetchAndUpdate = ({ store, credentials }) => {
const startFetching = ({ credentials, store }) => { const startFetching = ({ credentials, store }) => {
const boundFetchAndUpdate = () => fetchAndUpdate({ credentials, store }) const boundFetchAndUpdate = () => fetchAndUpdate({ credentials, store })
boundFetchAndUpdate() boundFetchAndUpdate()
return makeFetcher(boundFetchAndUpdate, 10000) return promiseInterval(boundFetchAndUpdate, 10000)
} }
const followRequestFetcher = { const followRequestFetcher = {

ファイルの表示

@ -1,5 +1,5 @@
import apiService from '../api/api.service.js' import apiService from '../api/api.service.js'
import { makeFetcher } from '../fetcher/fetcher.js' import { promiseInterval } from '../promise_interval/promise_interval.js'
const update = ({ store, notifications, older }) => { const update = ({ store, notifications, older }) => {
store.dispatch('setNotificationsError', { value: false }) store.dispatch('setNotificationsError', { value: false })
@ -61,7 +61,7 @@ const startFetching = ({ credentials, store }) => {
setTimeout(() => store.dispatch('setNotificationsSilence', false), 10000) setTimeout(() => store.dispatch('setNotificationsSilence', false), 10000)
const boundFetchAndUpdate = () => fetchAndUpdate({ credentials, store }) const boundFetchAndUpdate = () => fetchAndUpdate({ credentials, store })
boundFetchAndUpdate() boundFetchAndUpdate()
return makeFetcher(boundFetchAndUpdate, 10000) return promiseInterval(boundFetchAndUpdate, 10000)
} }
const notificationsFetcher = { const notificationsFetcher = {

ファイルの表示

@ -1,11 +1,11 @@
// makeFetcher - replacement for setInterval for fetching, starts counting // promiseInterval - replacement for setInterval for promises, starts counting
// the interval only after a request is done instead of immediately. // the interval only after a promise is done instead of immediately.
// - promiseCall is a function that returns a promise, it's called the first // - promiseCall is a function that returns a promise, it's called the first
// time after the first interval. // time after the first interval.
// - interval is the interval delay in ms. // - interval is the interval delay in ms.
export const makeFetcher = (promiseCall, interval) => { export const promiseInterval = (promiseCall, interval) => {
let stopped = false let stopped = false
let timeout = null let timeout = null
let func = () => {} let func = () => {}
@ -24,5 +24,5 @@ export const makeFetcher = (promiseCall, interval) => {
timeout = window.setTimeout(func, interval) timeout = window.setTimeout(func, interval)
return stopFetcher return { stop: stopFetcher }
} }

ファイルの表示

@ -1,7 +1,7 @@
import { camelCase } from 'lodash' import { camelCase } from 'lodash'
import apiService from '../api/api.service.js' import apiService from '../api/api.service.js'
import { makeFetcher } from '../fetcher/fetcher.js' import { promiseInterval } from '../promise_interval/promise_interval.js'
const update = ({ store, statuses, timeline, showImmediately, userId, pagination }) => { const update = ({ store, statuses, timeline, showImmediately, userId, pagination }) => {
const ccTimeline = camelCase(timeline) const ccTimeline = camelCase(timeline)
@ -74,7 +74,7 @@ const startFetching = ({ timeline = 'friends', credentials, store, userId = fals
fetchAndUpdate({ timeline, credentials, store, showImmediately, userId, tag }) fetchAndUpdate({ timeline, credentials, store, showImmediately, userId, tag })
const boundFetchAndUpdate = () => const boundFetchAndUpdate = () =>
fetchAndUpdate({ timeline, credentials, store, userId, tag }) fetchAndUpdate({ timeline, credentials, store, userId, tag })
return makeFetcher(boundFetchAndUpdate, 10000) return promiseInterval(boundFetchAndUpdate, 10000)
} }
const timelineFetcher = { const timelineFetcher = {
fetchAndUpdate, fetchAndUpdate,