{"_id":"@boltdoggy/boltil","_rev":"5-4435d46cf0903851afd1084bc1bd239a","name":"@boltdoggy/boltil","dist-tags":{"latest":"1.2.1"},"versions":{"1.0.0":{"name":"@boltdoggy/boltil","version":"1.0.0","description":"> Bolt 工具箱","main":"index.js","scripts":{"docs":"docsify serve docs","clean":"rm -rf lib","build":"npm run clean && tsc src/**.ts --outDir lib","test":"jest"},"author":"","license":"ISC","devDependencies":{"@types/jest":"^23.3.2","docsify-cli":"^4.2.1","jest":"^23.6.0","ts-jest":"^23.10.1","typescript":"^3.0.3"},"gitHead":"3fb0b8f6faf58bbe076248a7ed7c3b4606538eba","_id":"@boltdoggy/boltil@1.0.0","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"lc60005457","email":"lc60005457@163.com"},"dist":{"integrity":"sha512-IpbfHbbLHFZq/2ZWO2I+HTA7txumllyQMRjLpomjkFNvqvEN767yW6iuRHcqvlqpycOS+IlGaJAN1NRqJA5pjQ==","shasum":"45afd0a9a97aa362aae80d6bb90be307bd42c8bc","tarball":"https://registry.npmjs.org/@boltdoggy/boltil/-/boltil-1.0.0.tgz","fileCount":5,"unpackedSize":2419,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbqnMmCRA9TVsSAnZWagAAZn0QAIUWssyw5R0S7h/laGp8\nlqAM2EE6KUf8ms+yQo9a19GCf0KttBIaNBEhjR94X+SCWWLHiW8zZcJ5pMB6\nJ27XKRNkZdaevur9yp/3j/MPIHXpjgeMEOotj6z1yqVog0gCyqqZu1eFXyHY\nUZSKszYqV/8zEub/u5G2xLnDZM9WYwyBM0O2mlcTe6RoHRq/sd6v08R75cR2\nBL+3Iv5qNdVPwlVuPIZm6D+wVb01Mn9i51KrKQrVPayhc702EpfpC8sheLwf\nUGDriicMNsc6uVhcc7OaPSizIHj7Te6EFLXMvPcXZY5rFrh3Jq5gATpJ+gHM\nns6yuXXxdQoP6N1tNuE6zw68QsUV5pAow53dOFs5V4AqfyYBBrSZxYQMEOGm\nX62ZNTKycvXq1bO8f8GYHoJytfTplGHScWqns+hBTsVmJWDrLmMN9Kb+JdBa\ncHtYL+XRDyTlqc4ulJnZnn3vm06aE0Y3exVIcV8xppYcZSFBrISwnoePr9ju\ns0EOOzs7/sL5MzjD3ERsG2SLSE33IdXN86GWHXZDE2u15FwJpevXd3p7Xfvz\nu5A6g14pe8A5vfvRCpfT1rK6jgklnJov6ZIk/vUVXghS7QIWAe0vq15HrEOm\nOAE3ckRnkpWFuNuJ6aABvcjzVVCuy05DCfYWQkCNY31+DisSnoJgRnO3U82R\nDhsI\r\n=SX1z\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFHVaLP+TklwFYzb9E5oG+JPgwiBDTG47JtJumEWg8oxAiEA+BwMujbFyvyFINchRde+yCa95DvjGja8blDgd/nyk7Y="}]},"maintainers":[{"name":"lc60005457","email":"lc60005457@163.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/boltil_1.0.0_1537897254289_0.008583432200483854"},"_hasShrinkwrap":false},"1.0.1":{"name":"@boltdoggy/boltil","version":"1.0.1","description":"> Bolt 工具箱","main":"index.js","scripts":{"docs":"docsify serve docs","clean":"rm -rf lib","build":"npm run clean && tsc src/**.ts --outDir lib --lib es2015","prepublish":"npm run build","test":"jest"},"author":"","license":"ISC","devDependencies":{"@types/jest":"^23.3.2","docsify-cli":"^4.2.1","jest":"^23.6.0","ts-jest":"^23.10.1","typescript":"^3.0.3"},"directories":{"doc":"docs","lib":"lib","test":"test"},"dependencies":{},"repository":{"type":"git","url":"git+https://github.com/BoltDoggy/Boltil.git"},"bugs":{"url":"https://github.com/BoltDoggy/Boltil/issues"},"homepage":"https://github.com/BoltDoggy/Boltil#readme","gitHead":"8850856f8ad757658f21c3d75a831535a48b7a3c","_id":"@boltdoggy/boltil@1.0.1","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"lc60005457","email":"lc60005457@163.com"},"dist":{"integrity":"sha512-K4hqYXRQQNCi/xuIhOPN+2rssuk8q8I9xIK6aOxJP9TiGfyXQ3XxkdjlqKeaXIue2gtNBz+k93r2YDADjEDQqg==","shasum":"2c45c2a90ca621dc49365fe42bb1c9cc37c7f6a2","tarball":"https://registry.npmjs.org/@boltdoggy/boltil/-/boltil-1.0.1.tgz","fileCount":7,"unpackedSize":5261,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbqnkzCRA9TVsSAnZWagAAwFEP/3dL8Y142s6BTEcwOM/i\nYJLnZrvgp+MLHzpPNKxCxvlpg0YKUeVekO3sOt5yDOVwzHTZye2SpOt4/HdB\nGDfPkWElLakPPRuxyeL0piY6KjKFJwg71d5dclKZhYI2wS6UY215BuNK6xRX\nFO+ElrD+Bnt+oeX0uEcWjIG01wyst5/7gMsTSgqH1r7EDkOGZ4tkUaJ2m8sA\n06hYiFxvGGraiRzhDAjL4ynHfMi8d4PwbWxkJMIRamceGvuV2C+W3tBpktHT\naAWQTbXdWnjCTnxUlMKGVolRDA0u+h0yRobTrWJm7IsF9f79LLBGeNquft94\nIFQbohk6hSnOdCtmK8R4caFxm7XDgODYZW2YLTynJ2/SZCDyNO2GCBu4Q5Tg\nFRJp2W6eKv2S9NW/X0S7VAFQZCbEUfSSLXs2clx5Ohjw27z1XsFkIhT8jeo7\n8sjDRgBwDfE2j4eZDF1iMUE69VGr5+DWQkXpQdPb1jPk3xXBhKXqdyl9mcY+\n/YFe/P03CDFKT6+GRL+s88H2mwAVJ0YnWLzJvkfpX2h2tcV5gHx/KsqXdKXV\n7wnft1f++vCzW17HtgRc6uwejfKYUGLGUMSGaIKzenZno5X3Yekv9jSupVkp\nd11NG0VteK/KigEAteT8yG+2UVJUIZaBYwqdcV6+utvo5VEhjROQMmzQrJyu\nttxo\r\n=ET0l\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAtovHd21HgLU40oxhliHx1qQXKDvshplek2v1qOQYAIAiEAvWQIc5tUt9WS7ExiOkxA13oUnEOyLnRckSwHVrp+V50="}]},"maintainers":[{"name":"lc60005457","email":"lc60005457@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/boltil_1.0.1_1537898803292_0.749501282820308"},"_hasShrinkwrap":false},"1.1.0":{"name":"@boltdoggy/boltil","version":"1.1.0","description":"> Bolt 工具箱","main":"index.js","scripts":{"docs":"docsify serve docs","clean":"rm -rf lib","build":"npm run clean && tsc src/**.ts --outDir lib --lib es2015","prepublish":"npm run build","test":"jest"},"author":"","license":"ISC","devDependencies":{"@types/jest":"^23.3.2","docsify-cli":"^4.2.1","jest":"^23.6.0","ts-jest":"^23.10.1","typescript":"^3.0.3"},"directories":{"doc":"docs","lib":"lib","test":"test"},"dependencies":{"store":"^2.0.12"},"repository":{"type":"git","url":"git+https://github.com/BoltDoggy/Boltil.git"},"bugs":{"url":"https://github.com/BoltDoggy/Boltil/issues"},"homepage":"https://github.com/BoltDoggy/Boltil#readme","gitHead":"9a7be97b9932a6b1956f7d84f8c80b72b990e7c4","_id":"@boltdoggy/boltil@1.1.0","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"lc60005457","email":"lc60005457@163.com"},"dist":{"integrity":"sha512-t9kYmQxIK2++z8bWpigNktKCe0/22ZZf7tR4riT9ipDgtLqhyC1Ku/Wo/IppZfqMfmadsO0X+vLE8NsdbaDyoQ==","shasum":"2807462e0bf153dfeb92ef514104f99053d991aa","tarball":"https://registry.npmjs.org/@boltdoggy/boltil/-/boltil-1.1.0.tgz","fileCount":17,"unpackedSize":54659,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcLzdbCRA9TVsSAnZWagAAQD0QAJHGDtbop8CVPEpclbMy\nqycf/DXC9O/xLMzMaQ/355R/xWcZ7kikn7hrWA8LMAA7drslGmmdlw5CI8ln\nFrJWO/TnF1BiwWxPJvc9tw+Eft6b1A4nTUTx1i3bkC6HQomOtCm++Mxa4IrV\nVrdXjvjUP5CF0hNeFnDFYgFsaUPv6bH2HdPoj3hIk0mPPMcrsMvM/r42IA5Z\nS/PJYCSCh/OcVZcsReW0Bk+jsYwtLOZKULICiXZd9yCZOLRl3Ye0KqtAYBet\nOhRlbrdJMC7I1cqbPQA17kTNy0sLVQOnhrjdEB8WomKPNlHS5HOuNpgV8P3f\nXO6VAnrrdeqE8G2W2/PNex+qy15JsPYBPq3YQvvMSq7rV2XnV2MsDTQgrfy+\nO7b7xhQWZXD5MGUg153t3TZ8DtHj1NgXp14RcVybNHWQGrr0tm4xnuDYrRrO\nFG/DlwFExD7mm0b6h8uvvWTI/l0grHK89bc2JlvYT7B6I0jT5bLTAUBQeRIC\n2U1kw2fliVy3wzL57eomXPPyc3fdTAzA+EVfl/5MSTFyea7+rwLt/P2wsWII\n+fQKIPRRI0iBCSi3oVi8F4ID/Nakh2BuHrUJp4zb2cA+NuoNkghdJ89cC7hM\nBXpz0CVhLU0+m7CKzPPjbn55Pa4bGQnQW06UbsepOrDMhX5Iuh97J3j8fMAT\nq/u3\r\n=nokh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCNd50FOe64Kv497en96lZwmQdiQICT5sQemZXZ+z3fWQIgeoQq9NMAUqGGSOMLtpfTXT6Lg2Sxo79rgE8JjPs4weE="}]},"maintainers":[{"name":"lc60005457","email":"lc60005457@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/boltil_1.1.0_1546598235375_0.9658278940429161"},"_hasShrinkwrap":false},"1.2.0":{"name":"@boltdoggy/boltil","version":"1.2.0","description":"> Bolt 工具箱","main":"index.js","scripts":{"docs":"docsify serve docs","clean":"rm -rf lib","build":"npm run clean && tsc src/**.ts --outDir lib --lib es2015","prepublish":"npm run build","test":"jest"},"author":"","license":"ISC","devDependencies":{"@types/jest":"^23.3.13","docsify-cli":"^4.3.0","jest":"^23.6.0","ts-jest":"^23.10.5","typescript":"^3.2.4"},"directories":{"doc":"docs","lib":"lib","test":"test"},"dependencies":{"store":"^2.0.12"},"repository":{"type":"git","url":"git+https://github.com/BoltDoggy/Boltil.git"},"bugs":{"url":"https://github.com/BoltDoggy/Boltil/issues"},"homepage":"https://github.com/BoltDoggy/Boltil#readme","gitHead":"4733cf8e4617aa825ef2ac09271b5763a776fae9","_id":"@boltdoggy/boltil@1.2.0","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"lc60005457","email":"lc60005457@163.com"},"dist":{"integrity":"sha512-InLdJ0o8+WbxTkNM0s6IJVHKuyNkqEp/QnIR02Vm0hl1GnnnYdGynHzSXfUf5JaGv8fd+h8fL9/WqkQeWEAxiQ==","shasum":"49ec6154e6417c0cf3760bb25f054dae24dd0336","tarball":"https://registry.npmjs.org/@boltdoggy/boltil/-/boltil-1.2.0.tgz","fileCount":18,"unpackedSize":56089,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcSWGlCRA9TVsSAnZWagAAl64P/25X/Yl8KYyG5zaVLm9h\nCCEdMV0hI97dFwnVefcVvnJaZ4G6mLxpQ6cNmkE4c58YcYqgNz0FtijmOEZp\nEIvWuDSgnyRfxRUYHKYW5ggO4XU4Z/HdDvCZqWc5yoUi5CLOJMHPrDq0enax\nlDiHUY2IL3BT+8+YfHdT7xhGqj2pAovNM125q6y9SdJFJlAGQ18NUdwJzpwx\nq3OgxmrH4JzpY06HZH82sEnsGjV5lXHk2Br6bTJ9AeFl/vkgY0VGrTcvQ8VO\nyJQBQqqBoLiKRevojiRq785srOkWRLx2VaM+x0lpBgeHu3UPmttmuwoZOMq9\nbZKMmaLGEiUmDo0fkymnlEDH5RoLsep1PXis437J1Z6MM/fVGMoiPoHmhh7m\noFntK8Q7cJEecNW8ZFo440ohGOCPC2owH/YLtAx70evJZi5YM6XQdvtvuBbT\n6JL8u7XpeRg3gMsm8A+5NIJSIvQ0A7VDufGwQdIioB2OzHW7vfxWKETBtoMy\n9ryk36zZtNuM0rapeeulRqBHvzqcqxAcgR3Na+rD1n7TcO6IaMnq1wq7Qjll\nTFU6g3TPGQUAeDNdwcLBz1IxSSovRikWw7ddInUy5Vqg0qWjCWlvjmxMBRQH\n1ijUJGEjJHFhzCedtw3WBmg9Y1eMyWqJ4iNR3lZ1TnOXULkQzbvKHEMwQPL7\nWf4f\r\n=rItr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCa3gIs+6fNTN/TR6zCGIS2Z1hEgcDlIAJErqQ6TJhfjwIgPW+WbgECgra6ubYvXz2zIICswbe//Tn2fs9nQhUJcX4="}]},"maintainers":[{"name":"lc60005457","email":"lc60005457@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/boltil_1.2.0_1548312997006_0.1845727658002594"},"_hasShrinkwrap":false},"1.2.1":{"name":"@boltdoggy/boltil","version":"1.2.1","description":"> Bolt 工具箱","main":"lib/index.js","scripts":{"docs":"docsify serve docs","clean":"rm -rf lib","build":"npm run clean && tsc src/**.ts --outDir lib --lib es2015","prepublish":"npm run build","test":"jest"},"author":"","license":"ISC","devDependencies":{"@types/jest":"^23.3.13","docsify-cli":"^4.3.0","jest":"^23.6.0","ts-jest":"^23.10.5","typescript":"^3.2.4"},"directories":{"doc":"docs","lib":"lib","test":"test"},"dependencies":{"store":"^2.0.12"},"repository":{"type":"git","url":"git+https://github.com/BoltDoggy/Boltil.git"},"bugs":{"url":"https://github.com/BoltDoggy/Boltil/issues"},"homepage":"https://github.com/BoltDoggy/Boltil#readme","gitHead":"48b01d28e26d36a34c995803942e7825103922aa","_id":"@boltdoggy/boltil@1.2.1","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"lc60005457","email":"lc60005457@163.com"},"dist":{"integrity":"sha512-6gbDg/JwqfCoWw9ow/fn6STu4aOGX9U8S523VpErpNeT6KMHuOwnAOcIbML/BBKrWR+xGzamuQCqm5fC7tL9mQ==","shasum":"b88126f604e44fc935e8a22407b4c9bb59127412","tarball":"https://registry.npmjs.org/@boltdoggy/boltil/-/boltil-1.2.1.tgz","fileCount":18,"unpackedSize":56093,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJca27WCRA9TVsSAnZWagAAYZAP/RNxkuIN2t59K+wO3CZh\nKImgaL/IOMzMFWTPQ+q8Ath0zvlw25p42LHJS9ECFZFO9+WA8+loTpcczBn8\nvVzz6ylmyjAAcelioxz+USnwqpo3MJ2pA3Srt9PRA3rc3k2RVBYtLb+UN3xc\n6JmDSW2iqTQ2Qyv5fxkEQM7TUXpc5cu01n8YBkkelYCkfrTE2+/+XsksjuRr\n+UobnRzqW4+Xk2ibHoJNCabGo+QJH80sKCE0A+rGstLXswMbvjrsaegL8d5e\nWJeFHuDYLM0yKYfaQc5At2Wfv6PMzSRu14dcWcBt+CcBF1P63BYmZ+g6iy9T\nsbjRJlbbVxPWliMr9Vdc0Rv2M7kVqQfaq8GOLwecEn3j5+LvWurecGU8IjKI\nsf2zgoCdCWvw5YQhZMRqit0pMY/dxVM4O411uNeU14OuZ2Rav8KCgE6Zjm02\nBio59Qgfc991uUgsKfCuEzrXiTRw1B+rFv20XHOkVoIMzayvRJXNSwqNE8vR\nPem7Poo22ZLCJPryFuNLWWNh+L582vOmMv9TiH21kHgSDFcb2l31VVgach9d\niWV2fKwL3vtQstl/DssaxUV5UCJHfXmQIX4VlNxT+yF9kWA0PMD3oCNLDLbc\nLLcW5hAG4vEHlLfXv+nZLErbEaTQtHSq0uLVzvlvGzeoQL4RjDTReTlv7GVX\nTUi/\r\n=aMMe\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHzpOuABjc3VA8/KTBN5lagJIgM8y1CoQVVD1afRvFgcAiEAoT+NrNrVOXMVRB0xC6Vo6OTGkF2qvIX6dAE9uEOHlVI="}]},"maintainers":[{"name":"lc60005457","email":"lc60005457@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/boltil_1.2.1_1550544598206_0.9423534978678467"},"_hasShrinkwrap":false}},"time":{"created":"2018-09-25T17:40:54.201Z","1.0.0":"2018-09-25T17:40:54.408Z","modified":"2022-04-04T20:04:40.720Z","1.0.1":"2018-09-25T18:06:43.403Z","1.1.0":"2019-01-04T10:37:15.475Z","1.2.0":"2019-01-24T06:56:37.143Z","1.2.1":"2019-02-19T02:49:58.318Z"},"maintainers":[{"name":"lc60005457","email":"lc60005457@163.com"}],"description":"> Bolt 工具箱","license":"ISC","readme":"# Boltil\n\n> Bolt 工具箱\n\n## 使用\n\n```\nnpm i @boltdoggy/boltil -S\n```\n\n``` js\n// example1\nimport * as Boltil from '@boltdoggy/boltil'\nBoltil.debounceAsync(...)\n\n// example2\nimport {\n  debounceAsync,\n  fetchOnce\n} from '@boltdoggy/boltil'\ndebounceAsync(...)\n\n// example3\nimport debounceAsync from '@boltdoggy/boltil/lib/debounceAsync'\ndebounceAsync(...)\n```\n\n## API\n\n> 以下图示中 `sn` 表示请求发出, `--` 表示等待返回, `en` 表示返回结果, ` ` 表示空闲等待.\n\n```\nsn       ------en\n```\n\n- 如果没有 `--` 表示请求没有发出, 如果没有 `en` 表示没有结果返回.\n- 如 `snen` 表示请求没有发出, 但是立即返回了缓存中的结果.\n- 如 `sn  --en` 表示请求前等待了一个时间单元.\n\n\n### `f(...args)` = debounceAsync(`Function`)\n\n异步防抖\n\n连续不断的请求, 一个请求发出后, 结果返回前的请求都被忽略, 直到结果返回的时刻, 此时最后一次请求将被触发.\n\n```\ns1------e1\n  s2\n    s3\n      s4\n        s5------e5\n          s6\n            s7  ------e7\n                            s8------e8\n                              s9    ------e9\n```\n\n`f(...args)` 传入的参数 `...args` 将会原样传入原函数 `Function`\n\n``` js\n// example\n// aFetch 是一个普通的网络请求方法\nconst aFetchDebounced = debounceAsync(aFetch);\n// 使用 aFetchDebounced(...) 取代 aFetch(...);\n```\n\n### `f()` = fetchOnce(`Function`, `RefreshSwitch = false`)\n\n只请求一次, 再次以及更多的请求忽略.\n\n```\ns1------e1\n  s2    e1\n    s3  e1\n      s4e1\n        s5e1\n          s6e1\n            s7e1\n              s8e1\n                        s9e1\n```\n\n因为请求只发出一次, `f()` 传入参数也无法生效, 因此该方法不提供传入参数支持.\n\n``` js\n// example\n// aFetch 是一个普通的网络请求方法\nconst aFetchOnce = fetchOnce(() => aFetch(...));\n// 使用 aFetchOnce() 取代 aFetch(...);\n// 或\nconst anotherFetchOnce = fetchOnce(() => aFetch(...), true);\n// 使用 anotherFetchOnce() 取代 aFetch(...);\n```\n\n#### 可选参数 RefreshSwitch\n\n默认为 false, 当主动传入 true 时, 表示第一次网络请求结束后, 再次调用会发起新的请求\n\n```\ns1------e1\n  s2    e1\n    s3  e1\n      s4e1\n        s5e1\n          s6e6\n            s7e6\n              s8e8\n                        s9e9\n```\n\n### `f()` = cacheFirst(`[ CacheKey | CacheHandler ]`, `Function`, `RefreshSwitch = true`)\n\n缓存优先, 第一次请求, 在没有缓存的情况下, 请求正常发出.\n\n之后的请求发现本地缓存存在, 立即返回本地缓存数据, 同时请求发出, 返回后更新本地缓存.\n\n同时发出的网络请求参见 fetchOnce(`Function`, true) 的情况\n\n``` js\n// example\n// aFetch 是一个普通的网络请求方法\nconst aCacheFirst = cacheFirst('aString', () => aFetch(...));\n// 使用 aCacheFirst() 取代 aFetch(...);\n// 或\nconst anotherCacheFirst = cacheFirst('aString', () => aFetch(...), false);\n// 使用 anotherCacheFirst() 取代 aFetch(...);\n```\n\n#### CacheKey or CacheHandler\n\n使用 CacheKey, 传入 string, 作为 key, 并使用 [store](https://www.npmjs.com/package/store) 对本地存储操作\n\n使用 CacheHandler, 传入 object, 可以自定义对 Cache 的 getter, setter\n\n``` js\n// example\n// aFetch 是一个普通的网络请求方法\nconst aCacheFirst = cacheFirst({\n  get() {\n    return /* */;\n  },\n  set(data) {\n    /* */;\n  }\n}, () => aFetch(...));\n// 使用 aCacheFirst() 取代 aFetch(...);\n// 更详细的例子\nconst anotherCacheFirst = cacheFirst({\n  // 将缓存数据存储在临时属性 _data 中, 页面刷新后失效\n  _data: null,\n  get() {\n    return this._data;\n  },\n  set(data) {\n    this._data = data;\n  }\n}, () => aFetch(...));\n// 使用 anotherCacheFirst() 取代 aFetch(...);\n```\n\n#### 可选参数 RefreshSwitch\n\n默认为 true, 当主动传入 false 时, 表示不再更新本地缓存.\n\n即首次网络请求发出后, 不再发出网络请求.\n\n> 因为使用本地存储, 只有清空本地存储的情况才会更新数据, 请酌情慎用.\n\n### forEachAsync(`Array`, `StepFunction`, `DoneFunction`)\n\n按 `Array` 中元素顺序依次执行 `StepFunction(element, index, nextCallback)`\n\n- `element` 表示当前元素\n- `index` 表示当前元素在 `Array` 中的位置\n- `nextCallback(err)` 在异步处理完成后调用\n    - 如果 `err` 不为空, 则表示异常跳出, 不再使用 `Array` 的下一个元素执行 `StepFunction(...)`, 而是直接执行 `DoneFunction(err)`\n\n``` js\n// example\nforEachAsync([...], (element, index, next) => {\n  doSomeThingAsync(() => {\n    next();\n  });\n}, () => {\n  doSomeThing();\n})\n```","readmeFilename":"README.md","homepage":"https://github.com/BoltDoggy/Boltil#readme","repository":{"type":"git","url":"git+https://github.com/BoltDoggy/Boltil.git"},"bugs":{"url":"https://github.com/BoltDoggy/Boltil/issues"}}