Skip to content

Commit 5b5c26d

Browse files
committed
解决一个多个cell同时addpoint时候key没有形成闭包的bug
1 parent 2715389 commit 5b5c26d

File tree

2 files changed

+12
-11
lines changed

2 files changed

+12
-11
lines changed

front-model.js

+11-10
Original file line numberDiff line numberDiff line change
@@ -89,20 +89,21 @@ function getTreeNode(arg){
8989
}
9090
if(!this.flag[keyName]){
9191
this.flag[keyName] = 1
92-
setTimeout(()=>this.addPointsOne(keyName),savePeriod)
92+
var tmp = keyName
93+
setTimeout(this.addPointsOne(tmp,this),savePeriod)
9394
}
9495
}
9596
}
96-
TreeNode.addPointsOne = async function(key){
97-
while(this.lock[key]){
97+
TreeNode.addPointsOne = (key,that)=>async()=>{
98+
while(that.lock[key]){
9899
await sleep(savePeriod)
99100
}
100101

101-
this.lock[key] = 1
102-
delete this.flag[key]
103-
var preTmp = this.tmp[key]
104-
delete this.tmp[key]
105-
var preTree = this.getItem(key)
102+
that.lock[key] = 1
103+
delete that.flag[key]
104+
var preTmp = that.tmp[key]
105+
delete that.tmp[key]
106+
var preTree = that.getItem(key)
106107

107108
var tmp = []
108109
for(var i=0;i<preTmp.length;i++){
@@ -137,9 +138,9 @@ function getTreeNode(arg){
137138
}
138139
}
139140
var res = JSON.stringify(newTree.concat(tmp))
140-
await this.setItem(key,res)
141+
await that.setItem(key,res)
141142

142-
delete this.lock[key]
143+
delete that.lock[key]
143144
}
144145

145146
return TreeNode

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"scripts": {
77
"build": "sh -x build.sh 2>&1",
88
"debug": "DEBUG=--no-babelrc sh +x build.sh",
9-
"mongodb": "mongod --dbpath=./data --logpath=./data/log",
9+
"mongodb": "mkdir -p data && mongod --dbpath=./data --logpath=./data/log",
1010
"cleardb": "mongo --eval 'db.tree.drop()' pixelField",
1111
"start": "node ./build/`git rev-parse HEAD`/app.js || nodejs ./build/`git rev-parse HEAD`/app.js"
1212
},

0 commit comments

Comments
 (0)