关注React Native Tutorial,我遇到了一个我不明白的fetch()问题。我无法找到一个帖子来阐明这一点。
fetch()
似乎没有制作啊https请求,Promise
没有响应then()
。
有问题的代码:
url = "https://api.github.com/repos/octocat/Hello-World";
fetch(url).then(function(resp) {
return resp.json();
})
.then(function(json){
console.log(json);
});
在localhost debugger-ui上运行此命令将返回以下内容,但没有console.log(json)
输出:
Promise {_32: 0, _8: null, _89: Array[0]}
在chrome dev工具控制台上运行此反应原生调试ui:
Promise {[[PromiseStatus]]: "pending", [[PromiseValue]]: undefined}
Object {id: 1296269, name: "Hello-World", full_name: "octocat/Hello-World", owner: Object, private: false…}
我正在使用安装的最新软件包,如教程中所示。我的打包程序正在运行node_modules/react-native/packager/launchPackager.command ; exit;
,我可以看到http://localhost:8081/index.ios.bundle
。为了验证是否发出了https请求,我在localhost网址上运行fetch()
时监控了本地Web服务器日志。
有什么想法吗?谢谢!
答案 0 :(得分:2)
好像我刚遇到同样的问题。
你的问题有点暗示我要了解发生的事情,代码如下:
fetch(url, option).
then((res) => {
const json = res.json();
console.log(json);
return json;
}).then(json => {
console.log(json);
return json;
});
json
中的第一个console.log
实际上是Promise
。因此它不会打印正确的内容。但第二个console.log
将具有正确的json
,因为then
函数将解析返回的承诺。