大概就是,fu 函数还要继续使用 zi 函数的 cookie,两个 fetch 写在一个区块里没有问题,但是重构出一个单独函数,cookie 就没了,才开始学 js,不知道怎么传递这个关系
zi(){ fetch('http://xxx', { credentials: "same-origin", }); }
fu(){ zi(); fetch('http://xxx', { credentials: "same-origin", }); }
1
hyzjshwo 2016-04-10 00:04:00 +08:00
保存需要用的 cookie 不行吗?
比如 cookies = {credentials: "same-origin",anotherKey:"value"} zi(cookies){ fetch('http://xxx', cookies); } fu(cookies){ zi(cookies); fetch('http://xxx', cookies); } 持久化可以用 RN 的 AsyncStorage 不知道我理解对了吗? |
2
a302800411 OP @hyzjshwo fetch 的 cookie 可以导出来吗? zi ()执行的目的就是初始化 cookie,原本是空,我来试试
|
3
hyzjshwo 2016-04-10 00:12:53 +08:00
看文档 [SameObject] readonly attribute Headers headers;
|
4
hyzjshwo 2016-04-10 00:13:09 +08:00
|
6
hyzjshwo 2016-04-10 12:43:38 +08:00
@murmur
1 ,我给楼主的文档是 response-class , RN 官方文档中 set header 的例子是 request-class 2 ,当然 fetch 这个是个抽象标准,各家具体实现会不一样 |
7
malcolmyu 2016-04-10 13:37:43 +08:00
应该不用手动配置,理论上来说 fetch 自动管理 cookie 了。感觉应该是 fetch 请求的域名在 response 的时候没有 set-cookie 头部,由于在 zi() 函数中清理掉了,导致后续的请求都没法携带 cookie 。
|
8
a302800411 OP |
9
malcolmyu 2016-04-12 10:47:10 +08:00
@a302800411 异步执行本身没有问题啊,只要第一个请求响应有 set-cookie 的 header ,后续的 fetch 就应该会带有 cookie 。 fetch 函数返回的是一个 promise ,如果想要顺序执行,可以在 then 里返回一个 fetch ,下一个 then 链就可以获得 then 的结果了。不执行可能是出现了异常,可以在 then 链的最后加一个 catch 试一下。
|