我很难找到一些可观察的东西.我似乎无法让两个可观察者放在一起.他们自己工作得很好,但我需要两个值.
db.glass.subscribe( ( glass: GlassData[] ): void => {
console.log( glass ); // This prints
});
db.cassette_designs.subscribe( ( cassettes: CassetteData[] ): void => {
console.log( cassettes ): // This prints
});
Run Code Online (Sandbox Code Playgroud)
不是那么熟悉observables,我尝试的第一件事就是将一个嵌套在另一个内部,但内部的东西似乎没有做任何事情.
db.glass.subscribe( ( glass: GlassData[] ): void => {
console.log( glass ); // This prints
db.cassette_designs.subscribe( ( cassettes: CassetteData[] ): void => {
console.log( cassettes ): // This doesn't
});
});
Run Code Online (Sandbox Code Playgroud)
这似乎有点傻,所以我在Google上搜索是否有更好的方法来组合observables,结果发现有一些.我试过
zip,forkJoin因为他们看起来最喜欢我想做的事,但也没有什么能和他们一起工作.
Observable.zip( db.cassette_designs, db.glass, ( cassettes: CassetteData[], glass: GlassData[] ): void => {
console.log( …Run Code Online (Sandbox Code Playgroud) 我正在使用inbox和mailparsernpm模块来读取和解析来自邮箱的电子邮件.
我在解析重复的消息时遇到了一些麻烦.目前发生的事情是:
正如您对电子邮件服务器所期望的那样,电子邮件将被放入正确的邮箱中.然后他们inbox在我的node.js应用程序中被选中.然后他们被管道传输mailparser并被解析.
这是正常的.问题是当我发送第二封电子邮件时,我再次获得第一封电子邮件.有时我会得到多个,但我还没弄清楚是什么原因导致的.
let _inbox = require( "inbox" );
let _MailParser = require( "mailparser" ).MailParser;
let parser = new _MailParser();
let mail = _inbox.createConnection( false, "mail.myemailserver.com", {
auth: {
user: "email@myemailserver.com",
pass: "mypasswordthatissostrongnoonewilleverguessit:)"
}
});
mail.on( "new", ( message ) => {
console.log( message.UID, message.title );
db_insert( DB.collection( "email_ids" ), { _id: message.UID } ).then( () => {
mail.createMessageStream( message.UID ).pipe( parser );
});
});
parser.on( "end", ( message ) => …Run Code Online (Sandbox Code Playgroud)