我想为调用相同API的项目创建一个模块(在node_modules中安装)。但是当我导出我的异步函数时,我收到一个错误:
index.js Unexpected token (3:21)
You may need an appropriate loader to handle this file type.
Index.js是我的模块文件。
以下是示例代码:
export default async function({path, method = 'GET', body}, userToken = null, contentType = 'application/json') {
// some code here ...
}
在我的项目中,我导入如下:
import invokeApi from 'my_sdk';
答案 0 :(得分:0)
您的构建配置似乎在使用者代码方面存在问题。在使用异步API时必须启用async / await,因为它需要重新生成运行时(或安装Node 7.6 or later,因为它带来本机异步/等待支持)。
如果您在网络上使用此代码,则可能需要在入口点文件(可能是main.js,app.js或index.js)中import 'babel-polyfill'
并设置Webpack to use Babel to transpile your code。
使用babel-node跟随"presets": ["es2015", "stage-0"]
:
asyncModule.js
const sleep = async duration =>
new Promise(resolve => setTimeout(resolve, duration))
export default async function({path, method = 'GET', body}, userToken = null, contentType = 'application/json') {
await sleep(500)
return "Hello :)"
}
index.js
import asyncExample from './asyncModule'
const main = async () => {
const result = await asyncExample({path: '/', body: ''});
console.log(result)
main();
npm start
"start": "babel-node --presets es2015 index.js"