如何使用 window .fetch 加载本地 json 数据(ES6)
How to use window .fetch to load local json data (ES6)
我有一个 JSON 对象 (agendaItemsJson),我使用 ES6 语法加载它(通过 webpack 使用 json-loader)。使用以下命令会出错,因为 fetch 正在尝试解析 URL 而 agendaItemsJson 是一个对象。
所以我的问题是我如何正确地模仿它,以便我能够使用承诺并让 agendaItemsJson 作为我的回应。
'use strict';
import BaseService from './base-service';
import agendaItemsJson from '../json/agenda.json';
class _AgendaService extends BaseService {
getAgenda() {
// TODO: Will use API instead of the JSON here under.
return this.fetch(agendaItemsJson)
.then(response => response);
}
...
你能不能 return 一个用你的 agendaItemsJson 解决的承诺? I.E 使用 ES6 承诺?您甚至可以使用 setTimeout 延迟响应以模拟网络延迟。
getAgenda(){
return new Promise(function(resolve){
setTimeout(function(){
resolve(agendaItemsJson);
}, 1000);
});
}
如果 agendaItemsJson 是您想要使用承诺用作响应的对象,您可以这样做:
return Promise.resolve(agendaItemsJson);
这比创建新的 Promise 更短,它会立即解析该值。
顺便说一句,您不必等待超时执行。
我有一个 JSON 对象 (agendaItemsJson),我使用 ES6 语法加载它(通过 webpack 使用 json-loader)。使用以下命令会出错,因为 fetch 正在尝试解析 URL 而 agendaItemsJson 是一个对象。
所以我的问题是我如何正确地模仿它,以便我能够使用承诺并让 agendaItemsJson 作为我的回应。
'use strict';
import BaseService from './base-service';
import agendaItemsJson from '../json/agenda.json';
class _AgendaService extends BaseService {
getAgenda() {
// TODO: Will use API instead of the JSON here under.
return this.fetch(agendaItemsJson)
.then(response => response);
}
...
你能不能 return 一个用你的 agendaItemsJson 解决的承诺? I.E 使用 ES6 承诺?您甚至可以使用 setTimeout 延迟响应以模拟网络延迟。
getAgenda(){
return new Promise(function(resolve){
setTimeout(function(){
resolve(agendaItemsJson);
}, 1000);
});
}
如果 agendaItemsJson 是您想要使用承诺用作响应的对象,您可以这样做:
return Promise.resolve(agendaItemsJson);
这比创建新的 Promise 更短,它会立即解析该值。
顺便说一句,您不必等待超时执行。