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)
})
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
加一个分号就好了,那个地方js执行的时候把前后两部分当做函数执行了。