表示上传对象的过程。让您能够监控和管理上传。
签名:
export interface UploadTask
属性
属性 | 类型 | 说明 |
---|---|---|
snapshot | UploadTaskSnapshot | 当前任务状态的快照。 |
方法
方法 | 说明 |
---|---|
cancel() | 取消正在运行的任务。对已完成或失败的任务没有影响。 |
catch(onRejected) | 相当于调用 then(null, onRejected) 。 |
on(event, nextOrObserver, error, complete) | 监听此任务中的事件。事件有三个回调函数(称为 next 、error 和 complete )。如果仅传递事件,则返回可用于注册回调的函数。否则,回调会在事件之后传递。回调可作为三个单独的参数传递,或作为对象的 next 、error 和 complete 属性传递。只要至少指定了一个回调,这三个回调都是可选的。此外,当您添加回调时,还会返回一个函数。您可以调用此函数来取消注册关联的回调。 |
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()
监听此任务上的事件。
事件有三个回调函数(称为 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 )中部分或全部的观察器对象。 |
error | ((a: StorageError) => 未知) |null | 事件流因错误而结束时使用 StorageError 调用的函数。 |
complete | 退订 |null |
返回:
如果仅传递了事件参数,则返回一个可用于添加回调的函数(请参阅上文的示例)。如果传递的不仅仅是事件参数,则会返回一个函数,您可以调用该函数来取消注册回调。
示例 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 | 拒绝回调。 |
返回:
承诺<未知>