基于此问题在Android应用程序和网络服务器之间同步数据,我想知道是否存在用于离子应用程序的现有javascript(非本机)SyncAdapter(只是角度也可以).如果不是,我想在以下方面写一些指导方针:
我使用以下代码从mongo db(带有mongoose的nodejs)中的用户查询令牌:
UserMdl.find().exists('token').select('token').exec(function onUsersFound(err, userMdls) {
console.log(userMdls);
});
Run Code Online (Sandbox Code Playgroud)
所以我得到:
[ {
_id: 5447e36a60e5d15678de486c,
token: '34f83483cc0ed82e17c162d'
}, ... ]
Run Code Online (Sandbox Code Playgroud)
有什么方法可以获取字符串数组:
[ '34f83483cc0ed82e17c162d', ... ]
Run Code Online (Sandbox Code Playgroud)
现在,我正在做的是对响应进行后处理。我问这个问题是因为我认为在mongoose / mongodb查询中也许有一种更快的方法。
编辑
我现在正在做的后期处理:
var results = [];
userMdls.forEach(function (userMdl) {
results.push(userMdl.token);
});
Run Code Online (Sandbox Code Playgroud)
编辑
感谢saintedlama的回应,我做了一些测试,结果如下:
数据:14.976个文档
测试:100个
结果:
.find().exists('token').exec(..):1236.33毫秒
.aggregate({..}):136.07毫秒
测试代码:
var start,
end,
time,
firstTimes = [],
secondTimes = [],
test = 0,
firstFinal,
secondFinal,
i,
Q = require('q'),
UserMdl = require('models/user'),
u,
tokens = [];
function promiseWhile(condition, body) {
var done = …Run Code Online (Sandbox Code Playgroud) 我不太明白这段代码之间的区别:
co(function *() {
const val = yield aPromise();
return val;
})
.then((val) => doSomethingWith(val), (err) => doSomethingWith(err));
Run Code Online (Sandbox Code Playgroud)
还有这个:
async function () {
try {
const val = await aPromise();
doSomethingWith(val);
} catch (err) {
doSomethingWith(err);
}
}
Run Code Online (Sandbox Code Playgroud)
浏览器或服务器(node.js)中使用的每个代码的优缺点(主要在性能,可读性和流程控制方面)是什么,为什么要使用 co(取决于co 外部库)或 await(这是还不是 ES7 的一部分,取决于babel-polyfill ) 的使用。
当我将此代码用于承诺不需要结果继续时:
await resultNotNeeded(bla, foo);
Run Code Online (Sandbox Code Playgroud)
我收到这个 eslint 错误:
[eslint] 期望赋值或函数调用,却看到了一个表达式。(没有未使用的表达式)
如果代码是这样的:
const dummy = await resultNotNeeded(bla, foo);
Run Code Online (Sandbox Code Playgroud)
然后 eslint 错误是:
[eslint] 'dummy' 已定义但从未使用过 (no-unused-vars)
任何人都知道这应该如何解决(我知道我可以做到,// eslint-disable-line no-unused-expressions但我正在寻找此语句是否有更好的语法。
javascript ×2
node.js ×2
angularjs ×1
async-await ×1
babeljs ×1
co ×1
eslint ×1
lint ×1
mongodb ×1
mongoose ×1