2017-05-29 38 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)});