【问题标题】:How to use window .fetch to load local json data (ES6)如何使用 window .fetch 加载本地 json 数据(ES6)
【发布时间】:2016-07-10 03:59:47
【问题描述】:

我有一个使用 ES6 语法(通过 webpack 使用 json-loader)加载的 JSON 对象(agendaItemsJson)。使用以下内容会出错,因为 fetch 正在尝试解析 URL,而议程项目 Json 是一个对象。

所以我的问题是我怎样才能正确地模仿这一点,以便我能够使用承诺并让议程项目Json 成为我的回应。

'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);
    }
...

【问题讨论】:

    标签: javascript json promise webpack fetch-api


    【解决方案1】:

    您不能只返回一个用您的议程项目Json 解决的承诺吗? IE 使用 ES6 承诺?您甚至可以使用 setTimeout 延迟响应来模拟网络延迟。

    getAgenda(){
        return new Promise(function(resolve){
            setTimeout(function(){
                resolve(agendaItemsJson);
            }, 1000);
        });
    }
    

    【讨论】:

    • 你能给我一个例子吗?
    • 我已经编辑了我的帖子,让你知道我在想什么
    【解决方案2】:

    如果agendaItemsJson 是您希望使用promise 作为响应的对象,您可以这样做:

    return Promise.resolve(agendaItemsJson);
    

    这比创建一个新的 Promise 更短,它会立即解析该值。

    顺便说一句,您不必等待执行超时。

    【讨论】:

    • 超时的想法纯粹是为了模拟网络延迟(也许是为了演示 UI 加载/阻塞)因此构造的承诺。
    猜你喜欢
    • 2018-02-03
    • 1970-01-01
    • 1970-01-01
    • 2011-11-30
    • 1970-01-01
    • 2017-03-30
    • 1970-01-01
    • 1970-01-01
    • 2021-11-07
    相关资源
    最近更新 更多