JavaScrip 里的 IIFE

IIFE(立即调用函数表达式)是一个术语,用于表示函数的调用。简单地说,就是调试基于 Async/Promise 的函数。

在下面的场景中,我将模拟一个向 API 服务器发出请求的函数。

1
2
3
4
5
const data = (number) =>
new Promise((resolve, reject) => {
if (number === 200) resolve("200 OK");
else reject("400 Bad Request");
});

在幕后,当函数被调用并且数字的参数为 200 时,该对象将得到状态解析。如果数字中包含的不是 200,那么它将被拒绝。

然后,我们将通过一般调用来调用该函数。

1
2
3
4
5
6
7
8
9
10
const fetchData = async () => {
try {
const response = await data(200);
console.log(response);
} catch (err) {
console.error(err);
}
};

fetchData();

似乎在初始化 fetchData 之后,我们使用括号调用它。

通过使用 IIFE,你只需要双括号 ()。第一个括号被解释为表达式,第二个被解释为函数调用。
下面是用于使用 IIFE 方法从服务器调用 API 的代码示例。

1
2
3
4
5
6
7
8
(async () => {
try {
const response = await data(200);
console.log(response);
} catch (err) {
console.error(err);
}
})();