| Index: ui/file_manager/file_manager/background/js/task_queue.js
|
| diff --git a/ui/file_manager/file_manager/background/js/task_queue.js b/ui/file_manager/file_manager/background/js/task_queue.js
|
| index 9f2d539432627cd9e7ca58dd39a8552ca4f93b7f..ae0962519d7ed3a405254f268590cddb65a12e14 100644
|
| --- a/ui/file_manager/file_manager/background/js/task_queue.js
|
| +++ b/ui/file_manager/file_manager/background/js/task_queue.js
|
| @@ -181,16 +181,18 @@ importer.TaskQueue.BaseTask = function(taskId) {
|
| this.taskId_ = taskId;
|
| /** @private {!Array<!importer.TaskQueue.Task.Observer>} */
|
| this.observers_ = [];
|
| +
|
| + /** @private {!importer.Resolver} */
|
| + this.finishedResolver_ = new importer.Resolver();
|
| };
|
|
|
| /** @struct */
|
| importer.TaskQueue.BaseTask.prototype = {
|
| - /**
|
| - * @return {string} The task ID.
|
| - */
|
| - get taskId() {
|
| - return this.taskId_;
|
| - }
|
| + /** @return {string} The task ID. */
|
| + get taskId() { return this.taskId_; },
|
| +
|
| + /** @return {!Promise} Resolves when task is complete, rejects on error. */
|
| + get whenFinished() { return this.finishedResolver_.promise; }
|
| };
|
|
|
| /** @override */
|
| @@ -207,6 +209,13 @@ importer.TaskQueue.BaseTask.prototype.run = function() {};
|
| * @protected
|
| */
|
| importer.TaskQueue.BaseTask.prototype.notify = function(updateType, opt_data) {
|
| + switch (updateType) {
|
| + case importer.TaskQueue.UpdateType.CANCELED:
|
| + case importer.TaskQueue.UpdateType.ERROR:
|
| + case importer.TaskQueue.UpdateType.SUCCESS:
|
| + this.finishedResolver_.resolve();
|
| + }
|
| +
|
| this.observers_.forEach(
|
| /** @param {!importer.TaskQueue.Task.Observer} callback */
|
| function(callback) {
|
|
|