IIFE。 TypeError:require(...)(...)不是函数

时间:2018-11-07 09:02:23

标签: node.js iife

运行简单的脚本。出错了。

const fetch = require("node-fetch")
const url = "https://www.someurl.com"

(async ()=>{
    const response = await fetch(url)
    const data = await response
    console.log(data)
})()

错误

  

$ node api.js TypeError:require(...)(...)不是函数

我在这里想念什么? 谢谢。

1 个答案:

答案 0 :(得分:5)

Automatic Semicolon Insertion(ASI)在某些情况下无法正常工作。

IIFE属于其中一种情况,其中括号与上一行代码连接在一起。

要改善这一点,只需在IIFE前面加上分号即可。

const fetch = require("node-fetch")
const url = "https://www.someurl.com"

;(async () => {
    const response = await fetch(url)
    console.log(response)
})()

或者就像@estus在评论中所建议的那样,只是避免编写无分号的代码。