2017-05-29 72 views
-2

我现在正在开发一个反应本机应用程序,并且我编写了自己的模块来存储一些与我的组件分离的信息。.then()节点模块不工作?

虽然我这样做,我发现我的模块中我创造,我有这样的功能:

testFetch = function(url){ 
return fetch(url); 
} 

exports.test = testFetch; 

在我的主模块我做了以下内容:

import ts from 'test-module' 

ts.test("http://example.com").then((response) => {console.log(response)}); 

不过。于是()不会因任何原因而被解雇。请求经过并且成功。

对此有何帮助?

+0

请确认的例子misnaming并非来自真实的生活(和请正确)。 – Etki

+1

添加一个'catch'处理程序。你可能有一个错误,并且由于没有“catch”,它被忽略。 – Kryten

+0

在'exports.test = testFetch'中,你不会显示'testFetch'的定义位置,然后当你导入它时,你尝试使用'ts.testFetch()'而不是'ts.test()'。你的名字和名字的使用都被忽略了。 – jfriend00

回答

1

问题是你混合CommonJS和ES6模块的方式。您似乎预计在示例主模块中的ts会为您提供模块依赖项中整个export的值,但这不是它的工作原理。

您可以使用export default导出您testFetch功能,像这样:

testFetch = function (url) { 
    return fetch(url); 
} 

export default testFetch; 

主要模块:

import testFetch from 'test-module'; 

testFetch("http://example.com").then((response) => {console.log(response)});