react-native
Version:
A framework for building native apps using React
29 lines (25 loc) • 753 B
JavaScript
/**
* Copyright (c) 2016-present, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*/
;
module.exports = class AsyncTaskGroup {
constructor() {
this._runningTasks = new Set();
this._resolve = null;
this.done = new Promise(resolve => this._resolve = resolve);
}
start(taskHandle) {
this._runningTasks.add(taskHandle);
}
end(taskHandle) {
const runningTasks = this._runningTasks;
if (runningTasks.delete(taskHandle) && runningTasks.size === 0) {
this._resolve();
}
}
};