本文整理匯總了TypeScript中src/timeMachine/selectors.getActiveTimeMachine函數的典型用法代碼示例。如果您正苦於以下問題:TypeScript getActiveTimeMachine函數的具體用法?TypeScript getActiveTimeMachine怎麽用?TypeScript getActiveTimeMachine使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。
在下文中一共展示了getActiveTimeMachine函數的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。
示例1: async
export const loadTagSelector = (index: number) => async (
dispatch: Dispatch<Action>,
getState: GetState
) => {
const {buckets, tags} = getActiveQuery(getState()).builderConfig
if (!tags[index] || !buckets[0]) {
return
}
const tagsSelections = tags.slice(0, index)
const queryURL = getState().links.query.self
const orgID = getState().orgs.org.id
dispatch(setBuilderTagKeysStatus(index, RemoteDataState.Loading))
try {
const timeRange = getActiveTimeMachine(getState()).timeRange
const searchTerm = getActiveTimeMachine(getState()).queryBuilder.tags[index]
.keysSearchTerm
const keys = await queryBuilderFetcher.findKeys(index, {
url: queryURL,
orgID,
bucket: buckets[0],
tagsSelections,
searchTerm,
timeRange,
})
const {key} = tags[index]
if (!key) {
let defaultKey: string
if (index === 0 && keys.includes('_measurement')) {
defaultKey = '_measurement'
} else {
defaultKey = keys[0]
}
dispatch(setBuilderTagKeySelection(index, defaultKey))
} else if (!keys.includes(key)) {
// Even if the selected key didn't come back in the results, let it be
// selected anyway
keys.unshift(key)
}
dispatch(setBuilderTagKeys(index, keys))
dispatch(loadTagSelectorValues(index))
} catch (e) {
if (e instanceof CancellationError) {
return
}
console.error(e)
dispatch(setBuilderTagKeysStatus(index, RemoteDataState.Error))
}
}
示例2: async
export const refreshTimeMachineVariableValues = () => async (
dispatch,
getState: GetState
) => {
const contextID = getState().timeMachines.activeTimeMachineID
// Find variables currently used by queries in the TimeMachine
const {view, draftQueries} = getActiveTimeMachine(getState())
const draftView = {
...view,
properties: {...view.properties, queries: draftQueries},
}
const variables = extractVariablesList(getState())
const variablesInUse = filterUnusedVars(variables, [view, draftView])
// Find variables whose values have already been loaded by the TimeMachine
// (regardless of whether these variables are currently being used)
const hydratedVariables = getHydratedVariables(getState(), contextID)
// Refresh values for all variables with existing values and in use variables
const variablesToRefresh = variables.filter(
v => variablesInUse.includes(v) || hydratedVariables.includes(v)
)
await dispatch(refreshVariableValues(contextID, variablesToRefresh))
}
示例3: async
export const executeQueries = () => async (dispatch, getState: GetState) => {
const {view, timeRange} = getActiveTimeMachine(getState())
const queries = view.properties.queries.filter(({text}) => !!text.trim())
if (!queries.length) {
dispatch(setQueryResults(RemoteDataState.Done, [], null))
}
try {
dispatch(setQueryResults(RemoteDataState.Loading, null, null, null))
await dispatch(refreshTimeMachineVariableValues())
const orgID = getState().orgs.org.id
const activeTimeMachineID = getState().timeMachines.activeTimeMachineID
const variableAssignments = [
...getVariableAssignments(getState(), activeTimeMachineID),
...getTimeRangeVars(timeRange),
]
const startTime = Date.now()
pendingResults.forEach(({cancel}) => cancel())
pendingResults = queries.map(({text}) =>
executeQueryWithVars(orgID, text, variableAssignments)
)
const results = await Promise.all(pendingResults.map(r => r.promise))
const duration = Date.now() - startTime
const files = results.map(r => r.csv)
files.forEach(checkQueryResult)
dispatch(setQueryResults(RemoteDataState.Done, files, duration))
} catch (e) {
if (e instanceof CancellationError) {
return
}
if (get(e, 'status') === RATE_LIMIT_ERROR_STATUS) {
const retryAfter = get(e, 'headers.Retry-After')
dispatch(notify(rateLimitReached(retryAfter)))
}
console.error(e)
dispatch(setQueryResults(RemoteDataState.Error, null, null, e.message))
}
}