UploadTask interface

表示上传对象的过程。让您能够监控和管理上传。

签名

export interface UploadTask 

属性

属性 类型 说明
snapshot UploadTaskSnapshot 当前任务状态的快照。

方法

方法 说明
cancel() 取消正在运行的任务。对已完成或失败的任务没有影响。
catch(onRejected) 相当于调用 then(null, onRejected)
on(event, nextOrObserver, error, complete) 监听此任务中的事件。事件有三个回调函数(称为 nexterrorcomplete)。如果仅传递事件,则返回可用于注册回调的函数。否则,回调会在事件之后传递。回调可作为三个单独的参数传递,或作为对象的 nexterrorcomplete 属性传递。只要至少指定了一个回调,这三个回调都是可选的。此外,当您添加回调时,还会返回一个函数。您可以调用此函数来取消注册关联的回调。
pause() 暂停当前正在运行的任务。对已暂停或失败的任务没有影响。
resume() 恢复已暂停的任务。对当前正在运行的任务或失败的任务没有影响。
then(onFulified, onRejected) 此对象的行为类似于 promise,在上传完成时会使用其快照数据进行解析。

UploadTask.Snapshot

当前任务状态的快照。

签名

snapshot: UploadTaskSnapshot;

UploadTask.cancel()

取消正在运行的任务。对已完成或失败的任务没有影响。

签名

cancel(): boolean;

返回

布尔值

如果取消有效果,则为 true。

UploadTask.catch()

相当于调用 then(null, onRejected)

签名

catch(onRejected: (error: StorageError) => unknown): Promise<unknown>;

参数

参数 类型 说明
onRejected (错误:StorageError)=>未知

返回

承诺<未知>

UploadTask.on()

监听此任务上的事件。

事件有三个回调函数(称为 nexterrorcomplete)。

如果仅传递事件,则返回可用于注册回调的函数。否则,回调会在事件之后传递。

回调可以作为三个单独的实参进行传递,或者作为对象的 nexterrorcomplete 属性进行传递。只要至少指定了一个回调,这三个回调都是可选的。此外,当您添加回调时,还会返回一个函数。您可以调用此函数来取消注册关联的回调。

签名

on(event: TaskEvent, nextOrObserver?: StorageObserver<UploadTaskSnapshot> | null | ((snapshot: UploadTaskSnapshot) => unknown), error?: ((a: StorageError) => unknown) | null, complete?: Unsubscribe | null): Unsubscribe | Subscribe<UploadTaskSnapshot>;

参数

参数 类型 说明
事件 TaskEvent 要监听的事件的类型。
nextOrObserver 观察 StorageObserver<UploadTaskSnapshot>|null |((快照:UploadTaskSnapshot)=> 未知) 为事件流中的每个项调用的 next 函数,或具有这三个属性(nexterrorcomplete)中部分或全部的观察器对象。
error ((a: StorageError) => 未知) |null 事件流因错误而结束时使用 StorageError 调用的函数。
complete 退订 |null

返回

退订 |订阅<UploadTaskSnapshot>

如果仅传递了事件参数,则返回一个可用于添加回调的函数(请参阅上文的示例)。如果传递的不仅仅是事件参数,则会返回一个函数,您可以调用该函数来取消注册回调。

示例 1

**单独传递回调或在对象中传递回调。**

var next = function(snapshot) {};
var error = function(error) {};
var complete = function() {};

// The first example.
uploadTask.on(
    firebase.storage.TaskEvent.STATE_CHANGED,
    next,
    error,
    complete);

// This is equivalent to the first example.
uploadTask.on(firebase.storage.TaskEvent.STATE_CHANGED, {
  'next': next,
  'error': error,
  'complete': complete
});

// This is equivalent to the first example.
var subscribe = uploadTask.on(firebase.storage.TaskEvent.STATE_CHANGED);
subscribe(next, error, complete);

// This is equivalent to the first example.
var subscribe = uploadTask.on(firebase.storage.TaskEvent.STATE_CHANGED);
subscribe({
  'next': next,
  'error': error,
  'complete': complete
});

示例 2

**任何回调都是可选的。**

// Just listening for completion, this is legal.
uploadTask.on(
    firebase.storage.TaskEvent.STATE_CHANGED,
    null,
    null,
    function() {
      console.log('upload complete!');
    });

// Just listening for progress/state changes, this is legal.
uploadTask.on(firebase.storage.TaskEvent.STATE_CHANGED, function(snapshot) {
  var percent = snapshot.bytesTransferred / snapshot.totalBytes * 100;
  console.log(percent + "% done");
});

// This is also legal.
uploadTask.on(firebase.storage.TaskEvent.STATE_CHANGED, {
  'complete': function() {
    console.log('upload complete!');
  }
});

示例 3

**使用返回的函数移除回调。**

var unsubscribe = uploadTask.on(
    firebase.storage.TaskEvent.STATE_CHANGED,
    function(snapshot) {
      var percent = snapshot.bytesTransferred / snapshot.totalBytes * 100;
      console.log(percent + "% done");
      // Stop after receiving one update.
      unsubscribe();
    });

// This code is equivalent to the above.
var handle = uploadTask.on(firebase.storage.TaskEvent.STATE_CHANGED);
unsubscribe = handle(function(snapshot) {
  var percent = snapshot.bytesTransferred / snapshot.totalBytes * 100;
  console.log(percent + "% done");
  // Stop after receiving one update.
  unsubscribe();
});

UploadTask.pause()

暂停当前正在运行的任务。对已暂停或失败的任务没有影响。

签名

pause(): boolean;

返回

布尔值

如果操作生效,则为 true;如果被忽略,则为 false。

UploadTask.resume()

恢复已暂停的任务。对当前正在运行的任务或失败的任务没有影响。

签名

resume(): boolean;

返回

布尔值

如果操作生效,则为 true;如果被忽略,则为 false。

UploadTask.then()

此对象的行为类似于 promise,在上传完成时会使用其快照数据进行解析。

签名

then(onFulfilled?: ((snapshot: UploadTaskSnapshot) => unknown) | null, onRejected?: ((error: StorageError) => unknown) | null): Promise<unknown>;

参数

参数 类型 说明
已完成 ((快照:UploadTaskSnapshot)=> 未知)|null 执行方式回调。Promise 链可正常运行。
onRejected ((错误:StorageError)=> 未知)|null 拒绝回调。

返回

承诺<未知>