当我使用Sub Test()
Dim xRow As Long
Dim tbl As ListObject
Dim I As Long
Dim J As Long
For I = 1 To ActiveSheet.ListObjects("Table2").ListColumns(1).Range.Count - 1
MsgBox (ActiveSheet.ListObjects("Table2").DataBodyRange.Cells(I, 1))
For J = 1 To ActiveSheet.ListObjects("Table3").ListColumns(1).Range.Count - 1
If ActiveSheet.ListObjects("Table2").DataBodyRange.Cells(I, 1) = ActiveSheet.ListObjects("Table3").DataBodyRange.Cells(J, 1) Then
ActiveSheet.ListObjects("Table3").ListRows(J).Range.Select
ActiveSheet.ListObjects("Table3").ListRows(J).Range.Copy
Worksheets("RECHNUNGS 1").Active
ActiveSheet.ListObjects("Table13").ListRows(J).Range.Select
ActiveSheet.Paste
End If
Next J
Next I
End Sub
时,我在执行退出前所做的platform.exitApp()
更改未保存。
这是我的启动方式:
localStorage
通过这种方式,在this.user.profileGetbyId(this.user.userdata.id)
.subscribe(res => {
if(res && res.success) {
localStorage.setItem('user', res.data);
this.user.userdata = res.data;
console.log(this.user.userdata);
this.platform.exitApp();
//temp decision
// setTimeout(() => {
// this.platform.exitApp();
// }, 500);
}
})
启动之前,控制台向我显示我已更新用户,但是下次启动应用程序时,我将拥有exit()
之前的用户。
我接下来要尝试的是使用exit()
延时调用exit。使用此setTimeout()
,用户可以正确保存。
在没有timeout
的情况下如何正确保存更改?
答案 0 :(得分:2)
this.storage.set返回一个promise,等待它解决并执行 退出。
这是代码
this.storage.set('user', res.data).then(data=>{
this.user.userdata = res.data;
this.platform.exitApp();
})
在localStorage中,设置前使用JSON.stringify
localStorage.setItem("user", JSON.stringify(res.data));
要从localStorage获取值,请使用
JSON.parse(localStorage.getItem("user"))
答案 1 :(得分:1)
this.storage.set()
返回一个Promise,并在设置键和值时解析。 (请参见Documentation)
因此,您需要像这样呼叫then
:
this.storage.set('user', res.data).then(data => {
this.user.userdata = res.data;
this.platform.exitApp();
}