2

我正在从 GraphQL 服务器获取数据,我正在尝试Async通过 babel 实现 ES7 功能。我目前正在undefined控制台中接收,我不确定我做错了什么。

import fetch from 'isomorphic-fetch';
/**
 * [transport creates call to server with isomorphic-fetch]
 * @param  {[String]} path        [url to hit with request]
 * @param  {[Object]} query       [The GraphQL query/mutation]
 * @param  {[Object]} queryParams = {} [Params to pass into query]
 * @return {[Promise]}            [Promise containing payload]
 */
 //function that returns a promise
 export function transport (path, query, queryParams = {}) {
     return new Promise ((resolve, reject) => {
       return fetch(path, {
             method: 'POST',
             headers: {
                 'Accept': 'application/json',
                 'content-type': 'application/json'
             },
             body: JSON.stringify({
                 query,
                 queryParams
             })
         })
         .then(res => res.json())
         .then(response => {
           if(response.errors) {
             return error(response.errors);
           }
           return resolve(response.data);
         })
         .catch(error);
     });
 }
import { transport } from './utils/transport.js';

/**
 * [reachGraphQL Makes queres or mutations against GraphQL]
 * @param  {[String]} path        [path to the GraphQL server]
 * @param  {[Object]} query       [The query that GraphQL will use to fetch your data]
 * @param  {[object]} queryParams =  {} [Should contain object with different query params]
 * @return {[Object]}             [Data that was queried or mutated]
 */
//Heres Where I'm awaiting a promise from the transport function
export function reachGraphQL (path, query, queryParams = {}) {
  async () => {
    try{
      let response = await transport(path, query, queryParams);
      return response;
    } catch (error) {
      console.log(error)
    }
  }
}
4

1 回答 1

1

reachGraphQL只是定义了一个async箭头函数,但没有做任何事情。它没有return任何作用。相反,它应该是async它自己:

export async function reachGraphQL (path, query, queryParams = {}) {
    try {
        return await transport(path, query, queryParams);
    } catch (error) {
        console.log(error)
    }
}
于 2016-01-30T09:06:22.847 回答