IIFE和then一起使用的问题

实例代码 我列出了所有的情况:

问题是为什么 then 写法写在 IIFE 前面会报错,写在后面可以,而且两种写法单独使用也都是可以的

const { baseUrl } = require('./_baseUrl')

const fetch = require('node-fetch')

const demo = async () => {

    const url = baseUrl + '/base'

    const res = await fetch(url)

    const resData = await res.json()

    return await resData.data.name

}


// 报错的写法


demo()

.then(name => {

    console.log(name)

})


(async () => {

    const name = await demo()

    console.log(name)

})()


// 成功的写法


(async () => {

    const name = await demo()

    console.log(name)

})()


demo()

.then(name => {

    console.log(name)

})


// 单独使用都可以


(async () => {

    const name = await demo()

    console.log(name)

})()


// 单独使用都可以


demo()

.then(name => {

    console.log(name)

})


当年话下
浏览 402回答 1
1回答

MYYA

demo().then(name => {    console.log(name)});(async () => {    const name = await demo()    console.log(name)})()加一个分号就好了,那个地方js执行的时候把前后两部分当做函数执行了。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript