2016-03-23 49 views
1

ES6 sözdizimini kullanarak yüklediğim bir JSON nesnesine (agendaItemsJson) sahibim (webpack üzerinden json-loader kullanarak). Aşağıdakileri kullanarak bir hata verir çünkü getirme bir URL ve agendaItems ayrıştırmak için çalışıyor çünkü bir nesne.Yerel json verilerini yüklemek için pencere .fetch (ES6) nasıl kullanılır?

Bu yüzden sorum, doğru yanıtı nasıl taklit edebilirim ki, bir söz verebiliyorum ve yanıtımı alabilmek için bir sözümüzü kullanabilirim.

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

cevap

2

değil sadece agendaItemsJson çözülene bir söz dönmek olabilir mi? ES6 sözlerini kullanıyor muyum? Hatta ağ gecikmelerini simüle etmek için cevabı setTimeout ile erteleyebilirsiniz.

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

Bana bir örnek verebilir misiniz lütfen? – Gab

+0

Ne düşündüğümü size bildirmek için benim yazı düzenledim – maddockst

+0

Teşekkürler @maddockst – Gab

0

agendaItemsJson size sadece bu yapabileceğini bir söz kullanarak tepki olarak kullanmak istediğiniz nesne ise:

return Promise.resolve(agendaItemsJson); 

Bu yeni bir Promise oluşturma ve hemen değerini çözecektir daha kısadır.

Ve BTW, yürütülecek bir zaman aşımı için beklemek zorunda kalmazsınız.

+0

Zaman aşımı fikri tamamen ağ gecikme simülasyonu (belki UI yükleme/engelleme göstermek için) oldu. inşa edilmiş söz. – maddockst