BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java-script / #2300同步于 2017/6/8
该镜像源已超过 30 天没有更新,可能在源站已被删除。
JavaScript机器人发帖

【问题】求助大佬,关于NodeJS回调的问题

Idontknow
2017/6/8镜像同步15 回复
求助各位大佬,关于NodeJS回调的问题。 this.get("network") 返回一个Promise对象,通过它可以返回所有network的列表。network列表长度不确定。 但是有的network有个属性是config,有的network没有。config属性是包含其他属性,如flag属性,的对象。 我们只能通过如下方法去获取含有此flag的network。 ``` var networkWithFlag = []; network.get("config").then((config) => { if (config["flag"]) { //get the network which has flag attr. // config["name"]返回network的名称。 networkWithFlag.push(config["name"]); } }).catch((err) => { }); ``` 获取所有network的代码: ``` var networkPromiseList = []; this.get("network").then((networks) => { for (var i = 0; i < networks.length; i++) { networkPromiseList.push(networks[i].get("name")); } }).catch((err) => { }); Promise.all(networkPromiseList).then((networkNameList) => { //返回所有network的名称列表。 resolve(networkNameList); }).catch((err) => { }); ``` 现在我需要获取所有不含有flag属性的network。 请问怎样做?求提供一个思路。我已经快不行了。。
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
hain机器人#1 · 2017/6/9
lodash path, some, filter 之类的函数组合一下 https://lodash.com/docs/4.17.4
Idontknow机器人#2 · 2017/6/9
没懂,能讲解得详细一点吗? 【 在 hain 的大作中提到: 】 : lodash path, some, filter 之类的函数组合一下 : https://lodash.com/docs/4.17.4
linshao机器人#3 · 2017/6/12
delete掉属性ok么,渣渣如是说
arence机器人#4 · 2017/6/13
没明白你的第二段代码 和 第一段代码有啥关系? 第二段是:networks[i].get("name") 第一段是:network.get("config") 啥意思?
Idontknow机器人#5 · 2017/6/13
networks是所有network的列表。networks[i]可以获取一个network。network是具有一系列属性的对象。其中就包括name 属性和config属性。name属性是必须的,所有的network都具有。config属性是非必须的,有的network不具备。 【 在 arence 的大作中提到: 】 : 没明白你的第二段代码 和 第一段代码有啥关系? : 第二段是:networks[i].get("name") : 第一段是:network.get("config") : ...................
Idontknow机器人#6 · 2017/6/13
不能delete对象属性。都是只读。 【 在 linshao 的大作中提到: 】 : delete掉属性ok么,渣渣如是说
arence机器人#7 · 2017/6/13
一个network 要么就是含有flag,要么就是不含有flag,只有这两种类型,对吧? 那你现在能得到所有network的name列表:networkNameList 能得到所有含有flag的network的name列表:networkWithFlag 剩下的不就是没有flag的network了吗? 对networkNameList这个列表里去掉networkWithFlag这个列表里的元素,不就是networkWithoutFlag了? 难道不是这样? 还是我根本没理解明白。。 【 在 Idontknow 的大作中提到: 】 : networks是所有network的列表。networks[i]可以获取一个network。network是具有一系列属性的对象。其中就包括name 属性和config属性。name属性是必须的,所有的network都具有。config属性是非必须的,有的network不具备。 :
Idontknow机器人#8 · 2017/6/13
思路是这个思路。 问题是get(key)方法,去获取属性值的对象,它里面写的是返回一个promise对象。对于存在的对象属性(如name属性),它能够返回name属性的所有属性。如果network存在config属性,get("config")也能够返回config所有属性。但是如果network不存在config属性,get("config").then().catch() 中then() 和catch()的log都不打印。 【 在 arence 的大作中提到: 】 : 一个network 要么就是含有flag,要么就是不含有flag,只有这两种类型,对吧? : 那你现在能得到所有network的name列表:networkNameList : 能得到所有含有flag的network的name列表:networkWithFlag : ...................
xhwsolo机器人#9 · 2017/6/13
但是如果network不存在config属性,get("config").then().catch() 中then() 和catch()的log都不打印 这可以说明get这个接口的实现有问题吧 【 在 Idontknow 的大作中提到: 】 : 思路是这个思路。 : 问题是get(key)方法,去获取属性值的对象,它里面写的是返回一个promise对象。对于存在的对象属性(如name属性),它能够返回name属性的所有属性。如果network存在config属性,get("config")也能够返回config所有属性。但是如果network不存在config属性,get("config").then().catch() 中then() 和catch()的log都不打印。 :