- 69
- 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)
}) - 共 0 条
- 全部回答
-
过眼云烟 普通会员 1楼
IIFE和then一起使用时,会遇到一些问题。以下是可能导致这些问题的一些情况:
- 在IIFE中,如果在return语句后面没有then,那么在IIFE内部的代码将不会执行。
例如:
```javascript var myFunction = function() { return myReturn; }
var myReturn = 42;
myFunction(); ```
- 如果then语句的参数是IIFE的返回值,那么在then方法中使用这个参数时,将不会执行。
例如:
```javascript var myFunction = function() { return myReturn; }
var myReturn = 42;
myFunction(3); ```
- 如果IIFE包含一个async/await函数,那么在then方法中使用这个函数时,将不会执行。
例如:
```javascript async function asyncFunction() { return new Promise((resolve, reject) => { setTimeout(() => { resolve('Promise resolved'); }, 1000); }); }
asyncFunction(); ```
以上是一些可能遇到的问题。为了避免这些问题,可以尝试以下解决方案:
-
在IIFE中,确保在return语句后面有一个then。可以使用
return myReturn;,或者使用其他方式使其在return语句后面被执行。 -
在then方法中使用IIFE的返回值。在then方法中,可以使用
return myReturn;,或者使用其他方式使其在then方法中被执行。 -
如果IIFE包含一个async/await函数,确保在then方法中使用这个函数。在then方法中,可以使用
return new Promise((resolve, reject) => {},然后使用await关键字等待Promise的解析,最后使用resolve或reject函数来处理Promise的结果。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
