推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
dantegg

请教一个赋值的问题

  •  
  •   dantegg · Jan 7, 2017 · 2754 views
    This topic created in 3453 days ago, the information mentioned may be changed or developed.

    ` 如何给 tempArray 赋值然后返回,现在总是返回一个空数组

            let tempArray = []; 
            news.toArray((err,items)=>{
                items.map(x=>{
                    tempArray.push({
                        "title":x.title,
                        "content":x.content,
                        "createTime":x.createTime
                    })
                })
            })
            return tempArray
    
    9 replies    2017-01-08 13:21:04 +08:00
    rogerchen
        1
    rogerchen  
       Jan 7, 2017
    news 是什么, toArray() 是什么库的方法,签名是什么。
    dantegg
        2
    dantegg  
    OP
       Jan 7, 2017
    @rogerchen
    news 就是从 mongodb 里查出来的记录
    collection.find().toArray((err,items)=>{})
    这样的
    haozhang
        3
    haozhang  
       Jan 7, 2017 via iPhone   ❤️ 1
    你这个回调函数还没执行呢就返回了 array ,然后你取值的时候可能回调还没执行,所以不会有值的。
    rogerchen
        4
    rogerchen  
       Jan 7, 2017
    虽然代码槽点很多,但语法上确实看不出什么问题来。
    你打一个 log 看看 items 的长度吧,应该是逻辑上的问题。
    dremy
        5
    dremy  
       Jan 7, 2017 via Android
    根据第一项参数是 err 基本可以判定是异步的函数,在函数没有执行的时候就把空数组给返回了
    dantegg
        6
    dantegg  
    OP
       Jan 7, 2017
    自己解决了
    用 Promise.all
    结贴了
    dantegg
        7
    dantegg  
    OP
       Jan 7, 2017
    @rogerchen 求指正,槽点都有哪些=。=|||
    rogerchen
        8
    rogerchen  
       Jan 7, 2017
    @dantegg
    map 本身就要返回一个新数组,可以直接用来构建新数组。
    如果想要遍历数组,也该用 forEach 。
    vcfvct
        9
    vcfvct  
       Jan 8, 2017 via Android
    @haozhang 是呀,一语中的!楼主先多理解理解 js 中的 callback 和 event loop 是怎么回事。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   896 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 21:08 · PVG 05:08 · LAX 14:08 · JFK 17:08
    ♥ Do have faith in what you're doing.