Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Xts Acts
提交
41d8605a
X
Xts Acts
项目概览
OpenHarmony
/
Xts Acts
1 年多 前同步成功
通知
9
Star
22
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
X
Xts Acts
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
41d8605a
编写于
4月 28, 2023
作者:
Z
zhaimengchao
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
【Account】【3.1Release】Memory Leak Rectification
Signed-off-by:
N
zhaimengchao
<
zhaimengchao@huawei.com
>
上级
13d07f89
变更
12
展开全部
隐藏空白更改
内联
并排
Showing
12 changed file
with
286 addition
and
300 deletion
+286
-300
account/appaccount/actsaccounttest/entry/src/main/js/test/AppAccess.test.js
.../actsaccounttest/entry/src/main/js/test/AppAccess.test.js
+7
-8
account/appaccount/actsaccounttest/entry/src/main/js/test/AssociatedData.test.js
...accounttest/entry/src/main/js/test/AssociatedData.test.js
+7
-8
account/appaccount/actsaccounttest/entry/src/main/js/test/CreatManager.test.js
...tsaccounttest/entry/src/main/js/test/CreatManager.test.js
+7
-8
account/appaccount/actsaccounttest/entry/src/main/js/test/Credential.test.js
...actsaccounttest/entry/src/main/js/test/Credential.test.js
+7
-8
account/appaccount/actsaccounttest/entry/src/main/js/test/DeleteAccount.test.js
...saccounttest/entry/src/main/js/test/DeleteAccount.test.js
+7
-8
account/appaccount/actsaccounttest/entry/src/main/js/test/ExtraInfo.test.js
.../actsaccounttest/entry/src/main/js/test/ExtraInfo.test.js
+7
-8
account/appaccount/actsaccounttest/entry/src/main/js/test/NoPermission.test.js
...tsaccounttest/entry/src/main/js/test/NoPermission.test.js
+8
-8
account/appaccount/actsaccounttest/entry/src/main/js/test/OAuthToken.test.js
...actsaccounttest/entry/src/main/js/test/OAuthToken.test.js
+9
-7
account/appaccount/actsaccounttest/entry/src/main/js/test/OnOff.js
...ppaccount/actsaccounttest/entry/src/main/js/test/OnOff.js
+159
-178
account/appaccount/actsgetallaccounts/entry/src/main/js/test/Getallaccounts.test.js
...allaccounts/entry/src/main/js/test/Getallaccounts.test.js
+52
-47
account/appaccount/actssetchecksyncenable/entry/src/main/js/test/Syncenable.test.js
...checksyncenable/entry/src/main/js/test/Syncenable.test.js
+8
-6
account/appaccount/getallaccessibleaccounts/actsgetallaccessiblemultiple/entry/src/main/js/test/Getmultiple.test.js
...ssiblemultiple/entry/src/main/js/test/Getmultiple.test.js
+8
-6
未找到文件。
account/appaccount/actsaccounttest/entry/src/main/js/test/AppAccess.test.js
浏览文件 @
41d8605a
...
@@ -19,14 +19,13 @@ const TIMEOUT = 5000;
...
@@ -19,14 +19,13 @@ const TIMEOUT = 5000;
const
STRCOUNT
=
1025
;
const
STRCOUNT
=
1025
;
const
EACHTIMEOUT
=
500
;
const
EACHTIMEOUT
=
500
;
describe
(
'
ActsAccountAppAccess
'
,
function
()
{
describe
(
'
ActsAccountAppAccess
'
,
function
()
{
function
sleep
(
delay
)
{
async
function
sleep
(
delay
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
let
timeoutId
=
null
;
setTimeout
(()
=>
{
var
promise
=
new
Promise
((
resolve
,
reject
)
=>
{
resolve
()
timeoutId
=
setTimeout
(()
=>
resolve
(
"
done!
"
),
delay
);
},
delay
)
});
}).
then
(()
=>
{
await
promise
console
.
info
(
`sleep #{time} over ...`
)
clearTimeout
(
timeoutId
)
})
}
}
beforeAll
(
async
function
(
done
)
{
beforeAll
(
async
function
(
done
)
{
...
...
account/appaccount/actsaccounttest/entry/src/main/js/test/AssociatedData.test.js
浏览文件 @
41d8605a
...
@@ -18,14 +18,13 @@ import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from '
...
@@ -18,14 +18,13 @@ import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from '
const
TIMEOUT
=
5000
;
const
TIMEOUT
=
5000
;
const
EACHTIMEOUT
=
500
;
const
EACHTIMEOUT
=
500
;
describe
(
'
ActsAccountAssociatedData
'
,
function
()
{
describe
(
'
ActsAccountAssociatedData
'
,
function
()
{
function
sleep
(
delay
)
{
async
function
sleep
(
delay
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
let
timeoutId
=
null
;
setTimeout
(()
=>
{
var
promise
=
new
Promise
((
resolve
,
reject
)
=>
{
resolve
()
timeoutId
=
setTimeout
(()
=>
resolve
(
"
done!
"
),
delay
);
},
delay
)
});
}).
then
(()
=>
{
await
promise
console
.
info
(
`sleep #{time} over ...`
)
clearTimeout
(
timeoutId
)
})
}
}
beforeAll
(
async
function
(
done
)
{
beforeAll
(
async
function
(
done
)
{
...
...
account/appaccount/actsaccounttest/entry/src/main/js/test/CreatManager.test.js
浏览文件 @
41d8605a
...
@@ -17,14 +17,13 @@ import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from '
...
@@ -17,14 +17,13 @@ import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from '
const
TIMEOUT
=
5000
;
const
TIMEOUT
=
5000
;
describe
(
'
ActsCreatAppAccountManager
'
,
function
()
{
describe
(
'
ActsCreatAppAccountManager
'
,
function
()
{
function
sleep
(
delay
)
{
async
function
sleep
(
delay
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
let
timeoutId
=
null
;
setTimeout
(()
=>
{
var
promise
=
new
Promise
((
resolve
,
reject
)
=>
{
resolve
()
timeoutId
=
setTimeout
(()
=>
resolve
(
"
done!
"
),
delay
);
},
delay
)
});
}).
then
(()
=>
{
await
promise
console
.
info
(
`sleep #{time} over ...`
)
clearTimeout
(
timeoutId
)
})
}
}
beforeAll
(
async
function
(
done
)
{
beforeAll
(
async
function
(
done
)
{
...
...
account/appaccount/actsaccounttest/entry/src/main/js/test/Credential.test.js
浏览文件 @
41d8605a
...
@@ -18,14 +18,13 @@ import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from '
...
@@ -18,14 +18,13 @@ import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from '
const
TIMEOUT
=
5000
;
const
TIMEOUT
=
5000
;
const
EACHTIMEOUT
=
500
;
const
EACHTIMEOUT
=
500
;
describe
(
'
ActsAccountCredential
'
,
function
()
{
describe
(
'
ActsAccountCredential
'
,
function
()
{
function
sleep
(
delay
)
{
async
function
sleep
(
delay
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
let
timeoutId
=
null
;
setTimeout
(()
=>
{
var
promise
=
new
Promise
((
resolve
,
reject
)
=>
{
resolve
()
timeoutId
=
setTimeout
(()
=>
resolve
(
"
done!
"
),
delay
);
},
delay
)
});
}).
then
(()
=>
{
await
promise
console
.
info
(
`sleep #{time} over ...`
)
clearTimeout
(
timeoutId
)
})
}
}
beforeAll
(
async
function
(
done
)
{
beforeAll
(
async
function
(
done
)
{
...
...
account/appaccount/actsaccounttest/entry/src/main/js/test/DeleteAccount.test.js
浏览文件 @
41d8605a
...
@@ -18,14 +18,13 @@ import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from '
...
@@ -18,14 +18,13 @@ import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from '
const
NAMELIMIT
=
512
;
const
NAMELIMIT
=
512
;
const
TIMEOUT
=
5000
;
const
TIMEOUT
=
5000
;
describe
(
'
ActsAccountDeleteAccount
'
,
function
()
{
describe
(
'
ActsAccountDeleteAccount
'
,
function
()
{
function
sleep
(
delay
)
{
async
function
sleep
(
delay
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
let
timeoutId
=
null
;
setTimeout
(()
=>
{
var
promise
=
new
Promise
((
resolve
,
reject
)
=>
{
resolve
()
timeoutId
=
setTimeout
(()
=>
resolve
(
"
done!
"
),
delay
);
},
delay
)
});
}).
then
(()
=>
{
await
promise
console
.
info
(
`sleep #{time} over ...`
)
clearTimeout
(
timeoutId
)
})
}
}
beforeAll
(
async
function
(
done
)
{
beforeAll
(
async
function
(
done
)
{
...
...
account/appaccount/actsaccounttest/entry/src/main/js/test/ExtraInfo.test.js
浏览文件 @
41d8605a
...
@@ -18,14 +18,13 @@ import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from '
...
@@ -18,14 +18,13 @@ import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from '
const
TIMEOUT
=
5000
;
const
TIMEOUT
=
5000
;
const
EACHTIMEOUT
=
500
;
const
EACHTIMEOUT
=
500
;
describe
(
'
ActsAccountSetGetExtraInfo
'
,
function
()
{
describe
(
'
ActsAccountSetGetExtraInfo
'
,
function
()
{
function
sleep
(
delay
)
{
async
function
sleep
(
delay
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
let
timeoutId
=
null
;
setTimeout
(()
=>
{
var
promise
=
new
Promise
((
resolve
,
reject
)
=>
{
resolve
()
timeoutId
=
setTimeout
(()
=>
resolve
(
"
done!
"
),
delay
);
},
delay
)
});
}).
then
(()
=>
{
await
promise
console
.
info
(
`sleep #{time} over ...`
)
clearTimeout
(
timeoutId
)
})
}
}
beforeAll
(
async
function
(
done
)
{
beforeAll
(
async
function
(
done
)
{
...
...
account/appaccount/actsaccounttest/entry/src/main/js/test/NoPermission.test.js
浏览文件 @
41d8605a
...
@@ -18,15 +18,15 @@ import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from '
...
@@ -18,15 +18,15 @@ import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from '
const
TIMEOUT
=
5000
;
const
TIMEOUT
=
5000
;
const
ERR_APPACCOUNT_SERVICE_PERMISSION_DENIED
=
4521993
;
const
ERR_APPACCOUNT_SERVICE_PERMISSION_DENIED
=
4521993
;
describe
(
'
ActsAccountNoPermission
'
,
function
()
{
describe
(
'
ActsAccountNoPermission
'
,
function
()
{
function
sleep
(
delay
)
{
async
function
sleep
(
delay
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
let
timeoutId
=
null
;
setTimeout
(()
=>
{
var
promise
=
new
Promise
((
resolve
,
reject
)
=>
{
resolve
()
timeoutId
=
setTimeout
(()
=>
resolve
(
"
done!
"
),
delay
);
},
delay
)
});
}).
then
(()
=>
{
await
promise
console
.
info
(
`sleep #{time} over ...`
)
clearTimeout
(
timeoutId
)
})
}
}
beforeAll
(
async
function
(
done
)
{
beforeAll
(
async
function
(
done
)
{
console
.
debug
(
"
====>beforeAll start====
"
);
console
.
debug
(
"
====>beforeAll start====
"
);
await
sleep
(
TIMEOUT
);
await
sleep
(
TIMEOUT
);
...
...
account/appaccount/actsaccounttest/entry/src/main/js/test/OAuthToken.test.js
浏览文件 @
41d8605a
...
@@ -29,23 +29,25 @@ const OWNERLENGTHLIMIT = 1024;
...
@@ -29,23 +29,25 @@ const OWNERLENGTHLIMIT = 1024;
const
OWNERSELF
=
"
com.example.actsaccounttest
"
;
const
OWNERSELF
=
"
com.example.actsaccounttest
"
;
describe
(
'
ActsAccountOAuthToken
'
,
function
()
{
describe
(
'
ActsAccountOAuthToken
'
,
function
()
{
function
sleep
(
delay
)
{
async
function
sleep
(
delay
)
{
var
start
=
(
new
Date
()).
getTime
();
let
timeoutId
=
null
;
while
((
new
Date
()).
getTime
()
-
start
<
delay
)
{
var
promise
=
new
Promise
((
resolve
,
reject
)
=>
{
continue
;
timeoutId
=
setTimeout
(()
=>
resolve
(
"
done!
"
),
delay
);
}
});
await
promise
clearTimeout
(
timeoutId
)
}
}
beforeAll
(
async
function
(
done
)
{
beforeAll
(
async
function
(
done
)
{
console
.
debug
(
"
====>beforeAll start====
"
);
console
.
debug
(
"
====>beforeAll start====
"
);
sleep
(
TIMEOUT
);
await
sleep
(
TIMEOUT
);
console
.
debug
(
"
====>beforeAll end====
"
);
console
.
debug
(
"
====>beforeAll end====
"
);
done
();
done
();
});
});
beforeEach
(
async
function
(
done
)
{
beforeEach
(
async
function
(
done
)
{
console
.
debug
(
"
====>beforeAll enter====
"
);
console
.
debug
(
"
====>beforeAll enter====
"
);
sleep
(
EACHTIMEOUT
);
await
sleep
(
EACHTIMEOUT
);
done
();
done
();
});
});
...
...
account/appaccount/actsaccounttest/entry/src/main/js/test/OnOff.js
浏览文件 @
41d8605a
此差异已折叠。
点击以展开。
account/appaccount/actsgetallaccounts/entry/src/main/js/test/Getallaccounts.test.js
浏览文件 @
41d8605a
...
@@ -20,6 +20,15 @@ const TIMEOUT = 2000;
...
@@ -20,6 +20,15 @@ const TIMEOUT = 2000;
const
LENGTHLIMIT
=
1024
;
const
LENGTHLIMIT
=
1024
;
describe
(
'
ActsGetAllAccounts
'
,
function
()
{
describe
(
'
ActsGetAllAccounts
'
,
function
()
{
async
function
sleep
(
delay
)
{
let
timeoutId
=
null
;
var
promise
=
new
Promise
((
resolve
,
reject
)
=>
{
timeoutId
=
setTimeout
(()
=>
resolve
(
"
done!
"
),
delay
);
});
await
promise
clearTimeout
(
timeoutId
)
}
/*
/*
* @tc.number : ActsGetAllAccounts_0100
* @tc.number : ActsGetAllAccounts_0100
* @tc.name : getAllAccounts callback
* @tc.name : getAllAccounts callback
...
@@ -285,10 +294,9 @@ describe('ActsGetAllAccounts', function () {
...
@@ -285,10 +294,9 @@ describe('ActsGetAllAccounts', function () {
done
();
done
();
});
});
}
}
setTimeout
(
async
function
(){
await
sleep
(
TIMEOUT
)
console
.
debug
(
"
====>getAllAccounts 0900 start====
"
);
console
.
debug
(
"
====>getAllAccounts 0900 start====
"
);
appAccountManager
.
getAllAccounts
(
selfBundle
,
getAllCallback
);
appAccountManager
.
getAllAccounts
(
selfBundle
,
getAllCallback
);
},
TIMEOUT
);
});
});
/*
/*
...
@@ -318,31 +326,30 @@ describe('ActsGetAllAccounts', function () {
...
@@ -318,31 +326,30 @@ describe('ActsGetAllAccounts', function () {
},
},
},
},
);
);
setTimeout
(
async
function
(){
await
sleep
(
TIMEOUT
)
console
.
debug
(
"
====>getAllAccounts 1000 start====
"
);
console
.
debug
(
"
====>getAllAccounts 1000 start====
"
);
try
{
try
{
var
data
=
await
appAccountManager
.
getAllAccounts
(
selfBundle
);
var
data
=
await
appAccountManager
.
getAllAccounts
(
selfBundle
);
}
}
catch
(
err
){
catch
(
err
){
console
.
error
(
"
====>getAllAccounts 1000 fail err:
"
+
JSON
.
stringify
(
err
));
console
.
error
(
"
====>getAllAccounts 1000 fail err:
"
+
JSON
.
stringify
(
err
));
expect
().
assertFail
();
expect
().
assertFail
();
done
();
}
console
.
debug
(
"
====>getAllAccounts 1000 data:
"
+
JSON
.
stringify
(
data
));
try
{
expect
(
data
[
0
].
name
).
assertEqual
(
"
Account_application_promise
"
);
expect
(
data
[
0
].
owner
).
assertEqual
(
"
com.example.actsgetallaaccounts
"
);
}
catch
(
err
){
console
.
error
(
"
====>check data 1000 fail err:
"
+
JSON
.
stringify
(
err
));
expect
().
assertFail
();
done
();
}
console
.
debug
(
"
====>delete account 1000 start====
"
);
await
appAccountManager
.
deleteAccount
(
"
Account_application_promise
"
);
console
.
debug
(
"
====>ActsGetAllAccounts_1000 end====
"
);
done
();
done
();
},
TIMEOUT
);
}
console
.
debug
(
"
====>getAllAccounts 1000 data:
"
+
JSON
.
stringify
(
data
));
try
{
expect
(
data
[
0
].
name
).
assertEqual
(
"
Account_application_promise
"
);
expect
(
data
[
0
].
owner
).
assertEqual
(
"
com.example.actsgetallaaccounts
"
);
}
catch
(
err
){
console
.
error
(
"
====>check data 1000 fail err:
"
+
JSON
.
stringify
(
err
));
expect
().
assertFail
();
done
();
}
console
.
debug
(
"
====>delete account 1000 start====
"
);
await
appAccountManager
.
deleteAccount
(
"
Account_application_promise
"
);
console
.
debug
(
"
====>ActsGetAllAccounts_1000 end====
"
);
done
();
});
});
/*
/*
...
@@ -379,10 +386,9 @@ describe('ActsGetAllAccounts', function () {
...
@@ -379,10 +386,9 @@ describe('ActsGetAllAccounts', function () {
console
.
debug
(
"
====>ActsGetAllAccounts_1100 end====
"
);
console
.
debug
(
"
====>ActsGetAllAccounts_1100 end====
"
);
done
();
done
();
}
}
setTimeout
(
async
function
(){
await
sleep
(
TIMEOUT
)
console
.
debug
(
"
====>getAllAccounts 1100 start====
"
);
console
.
debug
(
"
====>getAllAccounts 1100 start====
"
);
appAccountManager
.
getAllAccounts
(
specifiedBundle
,
getAllCallback
);
appAccountManager
.
getAllAccounts
(
specifiedBundle
,
getAllCallback
);
},
TIMEOUT
);
});
});
/*
/*
...
@@ -410,22 +416,21 @@ describe('ActsGetAllAccounts', function () {
...
@@ -410,22 +416,21 @@ describe('ActsGetAllAccounts', function () {
},
},
},
},
);
);
setTimeout
(
async
function
(){
await
sleep
(
TIMEOUT
)
console
.
debug
(
"
====>getAllAccounts 1200 start====
"
);
console
.
debug
(
"
====>getAllAccounts 1200 start====
"
);
try
{
try
{
var
data
=
await
appAccountManager
.
getAllAccounts
(
specifiedBundle
);
var
data
=
await
appAccountManager
.
getAllAccounts
(
specifiedBundle
);
}
}
catch
(
err
){
catch
(
err
){
console
.
error
(
"
====>getAllAccounts 1200 fail err:
"
+
JSON
.
stringify
(
err
));
console
.
error
(
"
====>getAllAccounts 1200 fail err:
"
+
JSON
.
stringify
(
err
));
expect
().
assertFail
();
expect
().
assertFail
();
done
();
}
console
.
debug
(
"
====>getAllAccounts 1200 data:
"
+
JSON
.
stringify
(
data
));
expect
(
data
[
0
].
name
).
assertEqual
(
"
account_name_scene_single
"
);
expect
(
data
[
0
].
owner
).
assertEqual
(
"
com.example.actsscenegetallaccounts
"
);
console
.
debug
(
"
====>ActsGetAllAccounts_1200 end====
"
);
done
();
done
();
},
TIMEOUT
);
}
console
.
debug
(
"
====>getAllAccounts 1200 data:
"
+
JSON
.
stringify
(
data
));
expect
(
data
[
0
].
name
).
assertEqual
(
"
account_name_scene_single
"
);
expect
(
data
[
0
].
owner
).
assertEqual
(
"
com.example.actsscenegetallaccounts
"
);
console
.
debug
(
"
====>ActsGetAllAccounts_1200 end====
"
);
done
();
});
});
/*
/*
...
...
account/appaccount/actssetchecksyncenable/entry/src/main/js/test/Syncenable.test.js
浏览文件 @
41d8605a
...
@@ -30,16 +30,18 @@ describe('ActsSetCheckSyncEnable', function () {
...
@@ -30,16 +30,18 @@ describe('ActsSetCheckSyncEnable', function () {
var
atManager
=
abilityAccessCtrl
.
createAtManager
();
var
atManager
=
abilityAccessCtrl
.
createAtManager
();
var
result
=
await
atManager
.
grantUserGrantedPermission
(
tokenID
,
PERMISSION_USER_NAME
,
PERMISSION_USER_SET
);
var
result
=
await
atManager
.
grantUserGrantedPermission
(
tokenID
,
PERMISSION_USER_NAME
,
PERMISSION_USER_SET
);
console
.
debug
(
"
tokenId
"
+
tokenID
+
"
result:
"
+
result
);
console
.
debug
(
"
tokenId
"
+
tokenID
+
"
result:
"
+
result
);
sleep
(
TIMEOUT
);
await
sleep
(
TIMEOUT
);
console
.
debug
(
"
====>beforeAll end====
"
);
console
.
debug
(
"
====>beforeAll end====
"
);
done
();
done
();
})
})
function
sleep
(
delay
)
{
async
function
sleep
(
delay
)
{
var
start
=
(
new
Date
()).
getTime
();
let
timeoutId
=
null
;
while
((
new
Date
()).
getTime
()
-
start
<
delay
)
{
var
promise
=
new
Promise
((
resolve
,
reject
)
=>
{
continue
;
timeoutId
=
setTimeout
(()
=>
resolve
(
"
done!
"
),
delay
);
}
});
await
promise
clearTimeout
(
timeoutId
)
}
}
/*
/*
...
...
account/appaccount/getallaccessibleaccounts/actsgetallaccessiblemultiple/entry/src/main/js/test/Getmultiple.test.js
浏览文件 @
41d8605a
...
@@ -33,15 +33,17 @@ describe('ActsGetAllAccessibleMultiple', function () {
...
@@ -33,15 +33,17 @@ describe('ActsGetAllAccessibleMultiple', function () {
},
},
},
},
);
);
sleep
(
TIMEOUT
);
await
sleep
(
TIMEOUT
);
done
();
done
();
});
});
function
sleep
(
delay
)
{
async
function
sleep
(
delay
)
{
var
start
=
(
new
Date
()).
getTime
();
let
timeoutId
=
null
;
while
((
new
Date
()).
getTime
()
-
start
<
delay
)
{
var
promise
=
new
Promise
((
resolve
,
reject
)
=>
{
continue
;
timeoutId
=
setTimeout
(()
=>
resolve
(
"
done!
"
),
delay
);
}
});
await
promise
clearTimeout
(
timeoutId
)
}
}
/*
/*
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录