代表上傳物件的程序。可讓您監控及管理上傳作業。
簽名:
export interface UploadTask
屬性
屬性 | 類型 | 說明 |
---|---|---|
快照 | UploadTaskSnapshot | 目前工作狀態的數據匯報。 |
方法
方法 | 說明 |
---|---|
cancel() | 取消執行中的工作。不會對已完成或失敗的工作造成影響。 |
catch(on denied) | 等同於呼叫 then(null, onRejected) 。 |
on(event, nextOrObserver, error, complete) | 監聽這項工作中的事件。事件有三個回呼函式 (稱為 next 、error 和 complete )。如果只傳遞事件,會傳回可用來註冊回呼的函式。否則,回呼會在事件之後傳遞。回呼可做為三個單獨的引數傳遞,「或」做為物件的 next 、error 和 complete 屬性。只要指定至少一個回呼,即可選擇是否使用這些回呼。此外,新增回呼時,您會取回函式。您可以呼叫此函式來取消註冊相關聯的回呼。 |
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()
監聽這個工作的事件。
事件有三個回呼函式 (稱為 next
、error
和 complete
)。
如果只傳遞 事件,則會傳回可用於註冊回呼的函式。否則,回呼會在事件之後傳遞。
回呼可以當做三個單獨的引數傳遞,或作為物件的 next
、error
和 complete
屬性。只要指定至少一個回呼,即可選擇是否使用這些回呼。此外,新增回呼時,您會取回函式。您可以呼叫此函式來取消註冊相關聯的回呼。
簽名:
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 函式會呼叫事件串流中的每個項目,或是具備這三個屬性 (next 、error 、complete ) 的部分或全部的觀察器物件。 |
錯誤 | ((a:StorageError) => 不明) |空值 | 事件串流因發生錯誤而結束時,系統會使用 StorageError 呼叫的函式。 |
完成 | 取消訂閱 |空值 |
傳回:
如果只傳遞事件引數,則會傳回可用於新增回呼的函式 (請參閱上述範例)。如果傳遞的事件引數不只一個,會傳回可呼叫的函式,以取消註冊回呼。
範例 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) => 不明) |空值 | 拒絕回呼。 |
傳回:
承諾<未知>