肥宅之家  ⁝︎  登录
JS薛定谔地执行fetch再执行后续函数的方法
我利用ES6新特性里的fetch特性获取某个页面的内容,类似于:
fetch('abc.html').then(result=>{console.log('fuck');});
console.log('you');
这两行代码执行后控制台的输出是:
you
fuck
因为fetch是同步函数,即便它还未请求完成,也会继续往后执行。
于是我将后面的console.log('you');挪进了.then中,等fetch顺利执行后才继续执行:
fetch('abc.html').then(result=>{console.log('fuck');console.log('you');});
这时的输出理所当然是:
fuck
you
前提条件是fetch必须执行成功,但有时我想跳过fetch,直接执行后续函数。
于是就出现了一个问题,如何通过判断跳过fetch,直接执行then后的步骤?
经过几小时的研究,自造了一个奇技淫巧:
(async()=>{
if(判断){
let response = await fetch('abc.html');
console.log(response);
// 此段任意位置return可直接跳到then
// 执行失败想中止,可返回错误结果并在then中判断
};
console.log('fuck');
})().then(response=>{
console.log('you');
});
函数核心结构:
(async()=>{})().then(res=>{});
C
脑浆物语 霖博客 设计笔记 依萌萌 灰常记忆 乐亦人生 拔剑舞 云破天开 秋日 Yoooo 幻焕 归程 笨猫 云上萝莉
🍁 STATUS TOS