firebase - 使用 Redux Saga 通过 Firebase 存储检索上传的文件时出现问题
问题描述
我在应用程序中使用redux saga
with 。firebase
当我需要使用 firebase 存储并且需要获取刚刚上传的文件的下载 URL 时:
这不起作用
yield call (uploadTask.snapshot.ref.getDownloadURL);
但这项工作
yield call (() => uploadTask.snapshot.ref.getDownloadURL());
谁能帮我理解为什么第一个选项不起作用?我不明白这些方法之间的区别:)
解决方案
它们之间的区别在于this
getDownloadURL 运行后的值。第一个版本将具有this
等于窗口对象(在非严格模式下)或未定义(在严格模式下),而后者将具有this
等于uploadTask.snapshot.ref
.
该call
效果确实有几个重载可以让您指定this
. 您可以在此处看到它们,但一个示例是将数组作为第一个参数传递,如下所示:
yield call([uploadTask.snapshot.ref, uploadTask.snapshot.ref.getDownloadURL])
推荐阅读
- c# - 以最小的更改返回服务器生成的标识符以响应
- wordpress - 同时向 Google AI 平台提出多个请求
- excel - 有没有办法在 excel VBA 脚本中突出显示失败的单元格?
- javascript - 有没有办法使用 Javascript 或 Jquery 从浏览器中检测任何已安装的应用程序?
- ruby - 无法在 Mac 上使用 rbenv 更改 ruby 版本
- python - 使用 Django 模板中的比较器比较日期
- javascript - 数据表中未使用数组对象填充数据,出现空白屏幕
- javascript - 使用对象分配和映射问题防止原始数据发生突变
- sql - 显示在“IT”和“SE”工作的每个员工的姓名
- javascript - 行方向填充剩余空间反应原生