IIFE和then一起使用的问题

发布于 2022-09-06 09:23:06 字数 828 浏览 23 评论 0

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

问题是为什么 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)
})

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

人│生佛魔见 2022-09-13 09:23:06
demo()
.then(name => {
    console.log(name)
});

(async () => {
    const name = await demo()
    console.log(name)
})()

加一个分号就好了,那个地方js执行的时候把前后两部分当做函数执行了。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文