MyException - 我的異常網
當前位置:我的異常網» Web前端 » 通道口之webpackJsonpCallback

cf手游官网实名认证:通道口之webpackJsonpCallback

cf手游刷枪永久枪软件 www.yqwdk.icu  網友分享于:2018-06-08  瀏覽:0次
入口之webpackJsonpCallback

cf手游刷枪永久枪软件 www.yqwdk.icu 每個chunk的入口函數,基本上做了三件事,比如針對app.js

webpackJsonpCallback([0,1], {
  2: function(){}, 
  3:function(){}
}, [2]);

?1.chunk1有可能依賴chunk0,要先執行chunk0,也有可能chunk0已經執行過了,所以需要判斷

?2.將module = 2/3 的定義保存在modules對象中

?3.執行module = 2的??櫚拇?,注入三個參數

?

對于第一點說明:

在通過require.ensure加載的時候,的確有可能0正在加載中,并且chunk0下邊掛在了很多callback,需要在chunk0 resolve的時候去執行,此后才能執行chunk1的代碼邏輯,所以添加判斷,并且手動執行時必要的

我也沒見過場景。。。

?

/******/ 	var parentJsonpFunction = window["webpackJsonp"];
/******/ 	window["webpackJsonp"] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) {
/******/ 		// add "moreModules" to the modules object,
/******/ 		// then flag all "chunkIds" as loaded and fire callback
/******/ 		var moduleId, chunkId, i = 0, resolves = [], result;
/******/ 		for(;i < chunkIds.length; i++) {
/******/ 			chunkId = chunkIds[i];
/******/ 			if(installedChunks[chunkId])
/******/ // 此處installedChunkds[chunkId] = [resolve, reject, promise],
         // 在__webpack_require__.e函數定義的
/******/ 				resolves.push(installedChunks[chunkId][0]);
/******/ 			installedChunks[chunkId] = 0;
/******/ 		}
/******/ 		for(moduleId in moreModules) {
/******/ 			if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {
/******/ 				modules[moduleId] = moreModules[moduleId];
/******/ 			}
/******/ 		}
/******/ 		if(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules, executeModules);
/******/ 		while(resolves.length)
/******/ 			resolves.shift()();
/******/ 		if(executeModules) {
/******/ 			for(i=0; i < executeModules.length; i++) {
/******/ 				result = __webpack_require__(__webpack_require__.s = executeModules[i]);
/******/ 			}
/******/ 		}
/******/ 		return result;
/******/ 	};

?

ds

?

文章評論

軟件開發程序錯誤異常cf手游刷枪永久枪软件Copyright © 2009-2015 MyException 版權所有