add spec for HeadlessJsTaskSupport (#24907)
Summary: part of #24875 ## Changelog [General] [Added] - add TM spec for HeadlessJsTaskSupport Pull Request resolved: https://github.com/facebook/react-native/pull/24907 Reviewed By: RSNara Differential Revision: D15425720 Pulled By: fkgozali fbshipit-source-id: 2e904f265a68066918bae4f6f95494ad77654598
This commit is contained in:
Родитель
c44d4f9ef6
Коммит
56c3852384
|
@ -11,7 +11,6 @@
|
|||
|
||||
const BatchedBridge = require('../BatchedBridge/BatchedBridge');
|
||||
const BugReporting = require('../BugReporting/BugReporting');
|
||||
const NativeModules = require('../BatchedBridge/NativeModules');
|
||||
const ReactNative = require('../Renderer/shims/ReactNative');
|
||||
const SceneTracker = require('../Utilities/SceneTracker');
|
||||
|
||||
|
@ -21,6 +20,8 @@ const renderApplication = require('./renderApplication');
|
|||
const createPerformanceLogger = require('../Utilities/createPerformanceLogger');
|
||||
import type {IPerformanceLogger} from '../Utilities/createPerformanceLogger';
|
||||
|
||||
import NativeHeadlessJsTaskSupport from './NativeHeadlessJsTaskSupport';
|
||||
|
||||
type Task = (taskData: any) => Promise<void>;
|
||||
type TaskProvider = () => Task;
|
||||
type TaskCanceller = () => void;
|
||||
|
@ -261,16 +262,22 @@ const AppRegistry = {
|
|||
const taskProvider = taskProviders.get(taskKey);
|
||||
if (!taskProvider) {
|
||||
console.warn(`No task registered for key ${taskKey}`);
|
||||
NativeModules.HeadlessJsTaskSupport.notifyTaskFinished(taskId);
|
||||
if (NativeHeadlessJsTaskSupport) {
|
||||
NativeHeadlessJsTaskSupport.notifyTaskFinished(taskId);
|
||||
}
|
||||
return;
|
||||
}
|
||||
taskProvider()(data)
|
||||
.then(() =>
|
||||
NativeModules.HeadlessJsTaskSupport.notifyTaskFinished(taskId),
|
||||
)
|
||||
.then(() => {
|
||||
if (NativeHeadlessJsTaskSupport) {
|
||||
NativeHeadlessJsTaskSupport.notifyTaskFinished(taskId);
|
||||
}
|
||||
})
|
||||
.catch(reason => {
|
||||
console.error(reason);
|
||||
NativeModules.HeadlessJsTaskSupport.notifyTaskFinished(taskId);
|
||||
if (NativeHeadlessJsTaskSupport) {
|
||||
NativeHeadlessJsTaskSupport.notifyTaskFinished(taskId);
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
/**
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
* @flow
|
||||
* @format
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
import type {TurboModule} from 'RCTExport';
|
||||
import * as TurboModuleRegistry from 'TurboModuleRegistry';
|
||||
|
||||
export interface Spec extends TurboModule {
|
||||
+notifyTaskFinished: (taskId: number) => void;
|
||||
}
|
||||
|
||||
export default TurboModuleRegistry.get<Spec>('HeadlessJsTaskSupport');
|
Загрузка…
Ссылка в новой задаче