我刚刚开始使用Babel将我的ES6 javascript代码编译成ES5.当我开始使用Promises时,看起来它不起作用.Babel网站表示支持通过polyfill承诺.
没有运气,我试图添加:
require("babel/polyfill");
Run Code Online (Sandbox Code Playgroud)
要么
import * as p from "babel/polyfill";
Run Code Online (Sandbox Code Playgroud)
有了这个我将在我的应用程序引导上得到以下错误:
找不到模块'babel/polyfill'
我搜索了模块,但似乎我在这里缺少一些基本的东西.我也尝试添加旧的和好的蓝鸟NPM,但看起来它不起作用.
如何使用Babel的polyfills?
我有这个类对静态方法进行内部调用:
export class GeneralHelper extends BaseHelper{
static is(env){
return config.get('env:name') === env;
}
static isProd(){
return GeneralHelper.is('prod');
}
}
Run Code Online (Sandbox Code Playgroud)
我可以使用任何关键字来替换下面一行中的类名:
GeneralHelper.is('prod');
Run Code Online (Sandbox Code Playgroud)
在PHP中也有self,static等ES6是否提供类似这些东西吗?
TY.
试图弄清楚如何找到与async.eachSeries完全相同的功能,我需要一个按顺序运行的异步动作列表(不是并行)但是找不到在原生ES6中执行它的方法,任何人都可以建议,请?
ps考虑了发电机/产量,但还没有经验,所以我没有意识到它究竟能帮助我.
编辑1
根据请求,这是一个例子:
假设这段代码:
let model1 = new MongooseModel({prop1: "a", prop2: "b"});
let model2 = new MongooseModel({prop1: "c", prop2: "d"});
let arr = [model1 , model2];
Run Code Online (Sandbox Code Playgroud)
现在,我想在一系列中运行它,而不是并行,所以使用"异步"NPM很容易:
async.eachSeries(arr, (model, next)=>{
model.save.then(next).catch(next);
}, err=>{
if(err) return reject(error);
resolve();
})
Run Code Online (Sandbox Code Playgroud)
我的问题是:使用ES6,我可以原生使用吗?没有NPM'异步'包?
编辑2
使用async/await可以轻松完成:
let model1 = new MongooseModel({prop1: "a", prop2: "b"});
let model2 = new MongooseModel({prop1: "c", prop2: "d"});
let arr = [model1 , model2];
for(let model of arr){
await model.save();
}
Run Code Online (Sandbox Code Playgroud) 刚开始处理NodeJS网络应用程序并有一个基本问题.
由于我来自PHP领域,我知道PHP有一个内置的HTTP服务器但没有人实际使用它我们使用nginx和史前项目Apache作为HTTP服务器,当我进入ExpressJS我发现所有的例子都在谈论听取ExpressJS打开的HTTP服务器(当然是通过http NodeJS模块),但没有人谈论通过FastCGI(nginx - > FastCGI(例如node-fastcgi) - >我的ExpressJS应用程序)使用它,就像我以前用PHP做的那样(nginx - > PHP-fpm - >我的PHP env)我想知道为什么?
据我所知,NodeJS应用程序是非常快速,非阻塞I/O等等,但是有一个安全漏洞使用应用程序像每个人一样显示,因为运行的服务在JavaScript环境中具有相同的公共资源,一个用户例如,可以错误地(或不错误地)与他人共享敏感信息.让我们假设开发人员犯了这样的错误:
router.post('/set-user-cc', function(res){
global.user = new User({
creditCard: req.param('cc')
});
});
Run Code Online (Sandbox Code Playgroud)
其他用户请求:
router.get('/get-user-cc', funciton(req, res){
res.json(global.user);
});
Run Code Online (Sandbox Code Playgroud)
此时,每个用户将获得用户的CC信息.
通过FastCGI使用我的ExpressJS应用程序将为每个HTTP请求打开一个干净的JavaScript环境,用户不会互相伤害.
很高兴听到NodeJS(网络)应用程序经验丰富的开发人员为什么没有人建议使用FastCGI解决方案(在Google上搜索并几乎找不到任何东西),如果是这样,为什么它太糟糕了?
(ps这个例子只是为了证明这个问题不是某个人真正做过的事情,但是我们知道宇宙中存在很多愚蠢的人:)
谢谢!
有webstorm v10,babel文件监视器工作正常,一切都很好.
现在我想调试代码,任何方式调试ES6文件本身或必须在JS输出文件babel编译吗?
请指教.
我试图让没有歌曲标题的"干净Youtube播放器","稍后观看"按钮,分享按钮和Youtube标志.
因此,在阅读了playerVars API后,我设置了这个:
new YT.Player('someId', {
width: 460,
height: 390,
playerVars: {
modestbranding: 1,
fs: false,
showinfo: 0,
disablekb: 1,
wmode: 'opaque',
iv_load_policy: 3,
cc_load_policy: 1,
html5: 1,
enablejsapi: 1,
rel: 0
});
Run Code Online (Sandbox Code Playgroud)
我仍然会在右下角看到YouTube徽标,请看:
如果我删除showinfo: 0徽标消失但随后歌曲标题,"稍后观看"和"分享按钮出现在顶部:
有什么建议我怎么能一次隐藏所有?
谢谢.
我有两个微服务进行通信的相互通gRPC,A是RPC客户端和B是RPC服务器,包括书面使用的NodeJS GRPC NPM模块。
一切正常,直到在某个时间点意外A停止向 发送请求B,由于超时(5 秒)而失败并抛出此错误:
Error: Deadline Exceeded
这两个微服务都是 Docker 容器,运行在 AWS ECS 上并通过 AWS ELB 进行通信(不是 ALB,因为它不支持 HTTP2 和其他一些问题)。
我试图运行telnet从A到的ELB B,无论是从EC2实例,在运行ECS任务(泊坞容器本身)本身和它连接的罚款,但还是在的NodeJS应用程序A不能达到的的NodeJS应用程序B使用GRPC连接.
解决的唯一方法是停止并启动ECS任务,然后再次A成功连接B(直到下一次意外重现相同场景),但这当然不是解决方案。
有没有人遇到过这种问题?
这两者有什么区别:
(function () {
alert('something');
})();? # invocation parens after the wrapping parens
Run Code Online (Sandbox Code Playgroud)
和
(function () {
alert('something');
}()); # invocation parens inside the wrapping parens
Run Code Online (Sandbox Code Playgroud)
- 给我同样的结果:警告"某事".
我正在尝试找到一个好的队列服务器/消息代理,它可以使我能够将作业推送到队列,而且还可以:
我知道很多名字,比如 RabbitMQ、ActiveMQ、Kafka,但我想听到现实生活中的经验,而不仅仅是我已经读过的文章。
activemq-classic rabbitmq amazon-sqs messagebroker apache-kafka
以前使用Universal Google Analytics时,我有时会在跟踪自定义事件时使用发送hitCallback函数的选项:
ga('send', {
hitType: 'event',
eventCategory: 'Some Category',
eventAction: 'Some Action',
eventLabel: 'Some Label',
eventValue: 'Some Value',
hitCallback() {
console.log('event sent for sure!');
}
});
Run Code Online (Sandbox Code Playgroud)
这使我能够确保事件已被跟踪,以防我之后重定向到另一个页面。
我正在尝试找到一种方法来使用 Google Analytics 4 执行此操作,但无法找到发送到gtag('event' ...)该参数的标准参数来执行相同的操作。
这是至关重要的,因为根据我的经验,许多事件由于重定向而丢失,特别是注册或登录等重要事件。
javascript ×6
node.js ×4
ecmascript-6 ×3
babeljs ×2
amazon-sqs ×1
apache-kafka ×1
asynchronous ×1
docker ×1
es6-promise ×1
express ×1
grpc ×1
iframe ×1
nginx ×1
oop ×1
php ×1
polyfills ×1
rabbitmq ×1
rpc ×1
youtube ×1