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=>{});