在require js中使用fetch
using fetch with-in require js
我正在尝试学习requirejs,并且正在扩展从这里找到的多页演示:https://github.com/requirejs/example-multipage with fetch.
从上面的git repo中的演示代码中,我修改了www/js/app/model/m1.js代码,看起来像这样。演示中的其他内容基本相同。
define(['./Base','fetch'], function (Base) {
var m1 = fetch('data/people.json')
.then(function(response) {
return response.json();
});
return new Base(m1);
});
(我有fetch polyfil加载作为shim,这就是为什么它被包含在定义参数中-但开发最新的chrome支持fetch)
理想情况下,这将返回一个新的Base对象,该对象使用从fetch中解析的json来填充其数据源。这一点。当创建新的Base对象时,data = data
目前,虽然,似乎我只得到承诺回来,不能得到json。虽然如果我console.log的承诺,我可以看到成功的响应在那里。
我认为问题是你如何分配给m1
。不能使用fetch
的返回值。你的代码执行顺序如下:开始抓取,创建并返回Base
,从抓取中接收数据。所以当你构建Base
时,你还没有数据。这是JS中常见的模式(也是陷阱)。你能使用回调或承诺吗?
define(['./Base','fetch'], function (Base, callback) {
fetch('data/people.json')
.then(function(response) {
callback(response.json());
// or maybe you want
//Base(response.json());
});
});
相关文章:
- fetch() 函数未在 Ubuntu Chromium 浏览器上定义
- 当json解析空响应时,Whatwg-Fetch失败,我该如何防止它
- 当使用extern和目标JavaScript时,我如何强制Haxe编译器使用require语句
- 在gump和nodejs中使用Typescript时,未定义对require和exports的引用
- Typescript导入导出的类会发出require(..),从而导致浏览器错误
- IE11中的第二个调用取消了第一个Fetch API调用
- 将require('..')与变量一起使用与在webpack中使用字符串相比
- ajaxStart和ajaxStop等同于fetch API
- 限制npm依赖模块's require(隔离)的用法
- Backbone fetch中的Ajax在fetch调用退出后完成,因此fetch调用中没有成功/失败事件
- 如何在不使用require语句的情况下使用webpack加载目录中的所有文件
- 无法加载Ace.js编辑器模式和主题(命名空间项目&AMD require.js&grunt
- 在javascript中的require中传递变量
- 如何使用Redux Thunk处理fetch()响应中的错误
- 避免重新评估和动态卸载用“require”调用的对象
- 弹出窗口-jQuery Mobile、Backbone.js和Require.js
- 在非SPA(单页应用程序)中使用Require.js和Backbone
- fetch(),如何进行非缓存请求
- Angular2, doe's EventEmitter require zone.run?
- 在require js中使用fetch