小编Ahm*_*bib的帖子

有和没有睡眠的递归异步

我有两个版本的异步函数

async function asyncRecurseOne(i){
    try{
        console.log(i)
        i = i +1;
        await asyncRecurseOne(i)
    }catch(ex){
        console.log(ex);
    }
}

asyncRecurseOne(0);
Run Code Online (Sandbox Code Playgroud)

这导致最大调用堆栈大小超过 6300 左右

6246
6247
6248
RangeError: Maximum call stack size exceeded
    at asyncRecurseOne (/home/amit/Projects/NodeJs/MJS/recurse.js:38:17)
    at asyncRecurseOne (/home/amit/Projects/NodeJs/MJS/recurse.js:36:15)
Run Code Online (Sandbox Code Playgroud)

现在在另一个版本中,我使用 sleep 方法执行以下操作

let sleep = (time) => new Promise((resolve) => setTimeout(resolve, time))
async function asyncRecurseTwo(i){
    try{
        console.log(i)
        i = i +1;
        await sleep(100);
        await asyncRecurseTwo(i)
    }catch(ex){
        console.log(ex);
    }
}
Run Code Online (Sandbox Code Playgroud)

而且这个函数没有给出解决问题的最大调用堆栈大小,我在我的系统上运行直到记录了 20000。

第二个函数如何在不达到最大堆栈大小问题的情况下继续执行?

javascript

8
推荐指数
1
解决办法
96
查看次数

Angular:在构建期间向资产中的文件添加哈希

我一直在寻找解决方案,但还没有找到任何有用的东西。

问题: 我有一个 angular 应用程序,并且在我的资产文件夹中添加了自定义样式和脚本。我的资产文件夹的位置是src->assets。我使用ng build --prod --output-hashing=all此命令构建了我的项目,但此命令的问题在于它仅对组件中使用的组件和图像进行哈希处理,但所有其他文件(例如CSS、js 文件和由 CSS 添加的图像)在构建中未进行哈希处理.

由于持续发布,它在客户方面造成问题,有时浏览器不会刷新新部署版本的 CSS、JS 文件,并且他们抱怨样式和功能不起作用。

我尝试过的: 我尝试了很多我上面提到的事情。

  1. ng build --prod
  2. output-hashing

但它们都没有对我有益。我想要的只是让我的自定义 css 和 js 文件在构建过程中得到散列。有什么解决办法吗?

请随时提出任何其他需要或我在我的问题中遗漏的问题

*编辑: * 类似的问题已在这里提出但尚未得到正确回答。

versioning hash build typescript angular

7
推荐指数
1
解决办法
3242
查看次数

&& 和 ?? 之间的区别 在 JavaScript 中

我正在尝试使用逻辑与 &&空合并运算 ??符来条件渲染变量/值。但由于某种原因,我不清楚这两个运算符的用法以及它们是如何工作的。

请解释这两者之间的区别以及我们何时应该使用其中任何一个而不是if声明。

/* --------------------  ?? operator -------------------- */
const foo = null ?? '?? default string';
console.log(foo);

const baz = 0 ?? 10;
console.log(baz);

/* --------------------  && operator -------------------- */

const foo_1 = null && '&& default string';
console.log(foo_1);

const baz_1 = 0 && 20;
console.log(baz_1);
Run Code Online (Sandbox Code Playgroud)

javascript typescript nullish-coalescing

7
推荐指数
3
解决办法
6092
查看次数

错误:捆绑包initial-es5超出了最大预算。预算 6.00 MB 未达到 133.51 kB,总共 6.13 MB

我有一个角度应用程序升级到 11。

\n

我做了一个> ng build --prod

\n

我看到这个信息:

\n
\xe2\x88\x9a Browser application bundle generation complete.\n\xe2\x88\x9a ES5 bundle generation complete.\n\nInitial Chunk Files                      | Names                |      Size\nscripts.3cf268d47c462590e7d9.js          | scripts              |   3.27 MB\nmain-es5.9973d9ddec6de2b044ba.js         | main                 |   2.49 MB\nmain-es2015.9973d9ddec6de2b044ba.js      | main                 |   2.36 MB\nstyles.d540d930321db4c962dc.css          | styles               | 245.64 kB\npolyfills-es5.259ae27e17f48bc03647.js    | polyfills-es5        | 131.80 kB\npolyfills-es2015.732b81c0b5a3e3dbb1bc.js | polyfills            |  36.16 kB\nruntime-es2015.a4dadbc03350107420a4.js   | runtime              |   1.45 kB\nruntime-es5.a4dadbc03350107420a4.js      | runtime              |   1.45 kB\n\n                                         | Initial ES5 Total    |   6.13 MB\n                                         | Initial ES2015 Total |   5.91 …
Run Code Online (Sandbox Code Playgroud)

javascript bundle node-modules typescript angular

6
推荐指数
1
解决办法
7873
查看次数

如何在VSCode中调试NPM库包?

我已经创建了一个库Typescript并将在其他NodeJS项目中使用它。我已将源代码包含在NPM包中,因此当我将其安装到使用该包的项目中时,我也会在该文件夹中获取源代码node_modules

现在,在调试我的项目时,我希望能够命中node_modules. 我怎样才能做到这一点?

假设我有一个正在尝试调试的项目root/my-project,并且该项目正在使用名为 的 NPM 包@my-org/common,该包位于root/my-org-common. 由于该库是my-project使用 NPM 安装的,因此其代码@my-org/common也包含node_modulesroot/my-project/node_modules. 如何设置 VSCode 以便root/my-project/node_modules命中代码内的断点?

javascript redis node.js typescript visual-studio-code

5
推荐指数
1
解决办法
5921
查看次数

使用 angular8 在循环中传递参数 onclick

我有一个对象数组。我正在循环中迭代,并将每个项目的名称传递给onclick,它针对资产文件夹openIt(val)中的app.js文件中的函数。IE

角度代码:

<div *ngFor="let item of listArray">
<button class="tabopen" onclick="openIt(item.name)">{{item.name}}</button>
</div>
Run Code Online (Sandbox Code Playgroud)

app.js 代码:

function openIt(data) {
console.log(data);
}
Run Code Online (Sandbox Code Playgroud)

在app.js 文件中的openIt 函数中,我没有得到item.name。在我的控制台中,它显示了item is not defined 的错误。但是当我传递静态数据时,即onclick="openIt('sample_data')"它没有显示任何错误。

即使 item.name 也存在,我也得到了正确的值。我不明白为什么我无法将迭代数据传递给参数。

javascript parameter-passing ngfor angular8

4
推荐指数
1
解决办法
1万
查看次数

Javascript 点击功能在第一次点击时不起作用

我创建了一个函数,可以在单击时添加活动类,其工作正常,但它不会在第一次单击时添加活动类,第二次单击则开始工作正常。这是我的代码

  function howAppWorks($imgUrl, $myClass, event) {
                document.getElementById('myImage').src = $imgUrl;
                document.getElementById("howTheAppContent").classList.remove('addEvent', 'fillTheForm', 'rrtFlowSheet');
                document.getElementById("howTheAppContent").classList.add($myClass);
    
                // Add active class to the current button (highlight it)
                var header = document.getElementById("appWorksList");
                var btns = header.getElementsByClassName("custom-class");
    
                for (var i = 0; i < btns.length; i++) {
                    btns[i].addEventListener("click", function() {
                        var current = document.getElementsByClassName("active");
                        current[0].className = current[0].className.replace(" active", "");
                        this.className += " active";
                    });
                }
    
            }
Run Code Online (Sandbox Code Playgroud)
<div class="row">
        <div class="col-md-6">
            <div class="content">
                <div class="howTheAppWorksContent addEvent" id="howTheAppContent">
                    <img id="myImage" src="http://localhost/projects/rrs-website/wp-content/uploads/2021/11/how-the-app-works.png" alt="">
                </div>
            </div>
        </div>
        <div class="col-md-6" id="appWorksList"> …
Run Code Online (Sandbox Code Playgroud)

javascript

0
推荐指数
1
解决办法
152
查看次数