为什么我不能Error在catch回调中抛出一个内部并让进程处理错误,就好像它在任何其他范围内一样?
如果我什么都不做console.log(err)就会被打印出去,我对发生的事情一无所知.这个过程刚刚结束......
例:
function do1() {
return new Promise(function(resolve, reject) {
throw new Error('do1');
setTimeout(resolve, 1000)
});
}
function do2() {
return new Promise(function(resolve, reject) {
setTimeout(function() {
reject(new Error('do2'));
}, 1000)
});
}
do1().then(do2).catch(function(err) {
//console.log(err.stack); // This is the only way to see the stack
throw err; // This does nothing
});
Run Code Online (Sandbox Code Playgroud)
如果回调在主线程中执行,为什么Error会被黑洞吞噬?
我最近将我的 lambda Node.js 运行时从 8.x 更新到 12.x。我升级了很多依赖项并优化了与 webpack 的捆绑和部署过程。但是,我开始注意到 Cloudwatch 中的零星错误,其中包含一条神秘消息“发生未知应用程序错误”,没有堆栈跟踪或任何其他日志,可以为我提供有关函数输入的一些上下文。我没有办法调试这段代码,而且它似乎是一个原生的 AWS 错误,由于某种原因甚至无法调用该函数,否则,日志中会附加一个 JS 堆栈跟踪......
我开始认为存在 Webpack 问题,但我什至禁用了缩小过程,所以我不知道去哪里找。
我的代码是 100% Typescript 使用 Webpack & Babel 编译的。我是否应该尝试从构建过程中删除 Webpack,然后使用普通的 node_modules 文件夹压缩 Typescript 编译器输出而不进行任何捆绑?
有人可以帮帮我吗?此功能正在生产中!
编辑:我看到一堆警告,比如DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.,我知道,但这不应该是这个神秘错误的原因。
我依靠 Node 版本 12.17.x 来利用 Lambda 和 Elasticbeanstalk 中的特定功能 (AsyncLocalStorage)。但由于某种原因,Node.js 版本似乎并未公开。为什么他们认为平台“12.x”告诉我真正的 Node 版本?我想知道确切的次要版本和补丁版本,或者至少提供一些有关它的消息......
我必须创建一个打印 的测试 lambda 函数process.version,但令人惊讶的是,平台 12.x 仍然使用 v12.16。他们什么时候会升级到两周多前发布的最新稳定版本?他们是否在某个地方发布了这些版本?谷歌告诉我没有什么有用的。
这同样适用于 Elasticbeanstalk 实例。节点 v12.17 不存在于/opt/elasticbeanstalk/node-install/*
version amazon-web-services node.js amazon-elastic-beanstalk aws-lambda
这是最近版Chrome中出现的一个非常奇怪的问题.
我有一个巨大的应用程序,加载了数百个样式表(在开发模式下).页面加载时,显然会应用所有样式但缺少背景图像!如果我什么都不做并等待,突然之间图像开始随机加载...使用开发工具我检查了网络选项卡以查看图像是否被请求..但是没有,只是其中一些出现与之前版本的对比铬.
有没有人知道Chrome中是否添加了任何类型的优化,使图像懒散加载?显然,实现是错误的,并没有考虑具有大量样式表的页面!
此问题不会影响生产中的应用程序,其中所有样式表都打包并减少到~10.
在Linux和Windows 7上测试过
我想和这个人做同样的事情:https : //superuser.com/questions/263747/force-all-new-links-to-same-domain-to-reuse-single-browser-tab
几个月前我在 chrome-extensions google group 中问了同样的问题,但没有人愿意批准我的帖子。
我可以使用扩展程序在 Google Chrome 中实现这种行为吗?我尝试过,但找不到检测链接是否为外部链接的方法。对于外部,我的意思是单击聊天窗口或电子邮件中的链接。
谢谢,
我正在使用React和Electron构建桌面应用程序.由于它正在快速增长,我意识到我需要像Redux这样的某种状态管理来避免在组件之间传递许多属性.我开始阅读Redux官方文档,但仍然无法弄清楚如何在我的情况下实现它.我被卡住了!
例如,我有一个主要App组件,可以呈现许多子组件.其中一个有一个按钮.点击后,它应该向商店发送"事件",以便主要人员App可以采取行动.我怎么能做到这一点?我无法找到事件的概念,而且我已经开始讨论如何开始使用Redux.
为何举办活动 因为在这种情况下发送动作并修改应用程序状态对我来说似乎很愚蠢.我只想通知根组件根据用户操作调度操作.用户与表示组件交互,该表示组件应该告诉容器组件进行API调用或开始捕获音频/摄像机.
根据我现在所知,实现这一目标的唯一方法是改变状态,以便另一个侦听变化的组件检测到一个特殊值,意思是"嘿,让我们这样做",然后再次改变状态说"嘿,我是这样做",当它完成状态再次改变"嘿,它完成了".
有人能指出我正确的方向吗?
aws-lambda ×2
javascript ×2
node.js ×2
asynchronous ×1
browser ×1
es6-promise ×1
events ×1
image ×1
loading ×1
promise ×1
reactjs ×1
redux ×1
store ×1
stylesheet ×1
throw ×1
typescript ×1
version ×1
webpack ×1