亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Promise中then里面加入IIFE為什么console.log會報錯?

Promise中then里面加入IIFE為什么console.log會報錯?

慕桂英3389331 2019-04-27 22:14:38
Promise中then里面加入IIFE為什么console.log會報錯?當Promise中then里面加入自執行函數,并且自執行函數上面有console.log,代碼中就會報錯,錯誤消息是TypeError:console.log(...)isnotafunction,菜鳥的我真的不知道問題所在newPromise((resolve)=>{setTimeout(()=>{resolve('Promise01')},2000)}).then((value)=>{console.log(value)(function(){console.log('執行')}())})執行的結果是能打印出“Promise01”和“執行”后就報錯了,錯誤消息是TypeError:console.log(...)isnotafunction,如果把console.log(value)注釋掉就能正常執行,輸出結果是:Promise01、執行。如果把console.log(value)放在自執行函數下面也能正常執行。雖然then里面放IIFE很少見,但是我關注的是為什么會有這個結果?
查看完整描述

2 回答

?
MMMHUHU

TA貢獻1834條經驗 獲得超8個贊

console.log(value)
(function(){
console.log('執行')
}())
console.log(value)沒加分號,編譯器把它和后面一條語句合并解釋了,等同于
console.log(value)(function(){
console.log('執行')
}())
console.log(...)isnotafunction就很明顯了
                            
查看完整回答
反對 回復 2019-04-27
?
小唯快跑啊

TA貢獻1863條經驗 獲得超2個贊

少了分號的原因,
會把console.log(value)(function(){
console.log('執行')
}())
解析成一整個去執行
                            
查看完整回答
反對 回復 2019-04-27
  • 2 回答
  • 0 關注
  • 345 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號