Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 等待的Nedb异步函数 异步函数计数(){ 设nedb= 让计数=0 等待迭代(nedb,{},g=>{ 计数++ }) console.log(计数) 迭代(xx,查询,回调){ 返回新承诺((res,rej)=>{ pkgs.find(query).exec((err,res)=>{ 如果(错误!==null){ 这个。错误(err) }否则{ res.forEach((pkg)=>{ 回调(pkg) }) } }) res() })_Javascript_Nedb - Fatal编程技术网

Javascript 等待的Nedb异步函数 异步函数计数(){ 设nedb= 让计数=0 等待迭代(nedb,{},g=>{ 计数++ }) console.log(计数) 迭代(xx,查询,回调){ 返回新承诺((res,rej)=>{ pkgs.find(query).exec((err,res)=>{ 如果(错误!==null){ 这个。错误(err) }否则{ res.forEach((pkg)=>{ 回调(pkg) }) } }) res() })

Javascript 等待的Nedb异步函数 异步函数计数(){ 设nedb= 让计数=0 等待迭代(nedb,{},g=>{ 计数++ }) console.log(计数) 迭代(xx,查询,回调){ 返回新承诺((res,rej)=>{ pkgs.find(query).exec((err,res)=>{ 如果(错误!==null){ 这个。错误(err) }否则{ res.forEach((pkg)=>{ 回调(pkg) }) } }) res() }),javascript,nedb,Javascript,Nedb,我想写一些东西,在迭代结束后,有没有办法以正常的方式完成它?您需要将res()olve调用放在find回调中。立即履行undefined的承诺不会有帮助 但实际上,您根本不应该传递迭代回调 async function count() { let nedb = <<functional nedb database>> let count = 0 await iterate(nedb, {}, g=>{

我想写一些东西,在迭代结束后,有没有办法以正常的方式完成它?

您需要将
res()
olve调用放在
find
回调中。立即履行
undefined
的承诺不会有帮助

但实际上,您根本不应该传递迭代回调

async function count() {
        let nedb = <<functional nedb database>>
        let count = 0
        await iterate(nedb, {}, g=>{
            count++
        })
        console.log(count)


iterate(xx, query, callback) {
    return new Promise((res, rej)=> {
        pkgs.find(query).exec((err, res)=>{
            if(err!==null) {
                this.err(err)
            } else {
                res.forEach((pkg)=>{
                    callback(pkg)
                })
            }
        })
        res()
    })

我不想数到一。@m23你是什么意思?对于每个包,这仍然是递增的。
async function count() {
    let nedb = …;
    let count = 0;
    const pkgs = await query(nedb, {});
    pkgs.forEach(pkg => count++);
    // or maybe better just:
    const count = pkgs.length;
    console.log(count);
}

function query(pkgs, query) {
    return new Promise((resolve, reject)=> {
        pkgs.find(query).exec((error, result)=>{
            if (error !== null) reject(error);
            else resolve(result);
        });
    });
}