UploadTask interface

代表上傳物件的程序。可讓您監控及管理上傳作業。

簽名:

export interface UploadTask 

屬性

屬性 類型 說明
快照 UploadTaskSnapshot 目前工作狀態的數據匯報。

方法

方法 說明
cancel() 取消執行中的工作。不會對已完成或失敗的工作造成影響。
catch(on denied) 等同於呼叫 then(null, onRejected)
on(event, nextOrObserver, error, complete) 監聽這項工作中的事件。事件有三個回呼函式 (稱為 nexterrorcomplete)。如果只傳遞事件,會傳回可用來註冊回呼的函式。否則,回呼會在事件之後傳遞。回呼可做為三個單獨的引數傳遞,「或」做為物件的 nexterrorcomplete 屬性。只要指定至少一個回呼,即可選擇是否使用這些回呼。此外,新增回呼時,您會取回函式。您可以呼叫此函式來取消註冊相關聯的回呼。
pause() 暫停執行中的工作。不會對已暫停或失敗的工作造成任何影響。
resume() 繼續執行已暫停的工作。不會對目前正在執行或失敗的工作造成任何影響。
then(onFulfilled, on denied) 這個物件的行為與 Promise 類似,並在上傳完成時使用快照資料進行解析。

UploadTask.snapshot

目前工作狀態的數據匯報。

簽名:

snapshot: UploadTaskSnapshot;

UploadTask.cancel()

取消執行中的工作。不會對已完成或失敗的工作造成影響。

簽名:

cancel(): boolean;

傳回:

布林值

如果取消已生效,則為 True。

UploadTask.catch()

等同於呼叫 then(null, onRejected)

簽名:

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

參數

參數 類型 說明
已遭拒 (錯誤: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) 的部分或全部的觀察器物件。
錯誤 ((a:StorageError) => 不明) |空值 事件串流因發生錯誤而結束時,系統會使用 StorageError 呼叫的函式。
完成 取消訂閱 |空值

傳回:

取消訂閱 |訂閱<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>;

參數

參數 類型 說明
onFulfill ((快照:UploadTaskSnapshot) => 不明) |空值 執行要求回呼。承諾鏈結的運作方式是正常的。
已遭拒 ((錯誤:StorageError) => 不明) |空值 拒絕回呼。

傳回:

承諾<未知>