Angularjs 将存储项作为字符串而不是对象获取
使用下面的代码,我试图从ionic storage键值对检索Web链接Angularjs 将存储项作为字符串而不是对象获取,angularjs,ionic-framework,ionic2,Angularjs,Ionic Framework,Ionic2,使用下面的代码,我试图从ionic storage键值对检索Web链接 loadpage(){ let weblink = this.storage.get('link').then((val) => { JSON.stringify(val); console.log('Your link is', val); }); this.http.get(weblink) .timeout(2000) .
loadpage(){
let weblink = this.storage.get('link').then((val) => {
JSON.stringify(val);
console.log('Your link is', val);
});
this.http.get(weblink)
.timeout(2000)
.map(res => res.json())
.subscribe(data => {
this.mainContact = data;
this.storage.set ("mainContact", JSON.stringify(data));
},
err => {
this.connectionAlert();
}
);
}
我的错误是我正在尝试将“weblink”字符串化,但它仍然是一个对象。如何将“weblink”转换为字符串以用于http。get
weblink
这里有一个Promise
对象正在等待填充。考虑到异步的性质,http请求在对storage
引擎创建的Promise
对象进行求值之前,会对该对象执行该操作
如果您打算将weblink
用于http请求,克服此问题的一种方法是将调用转移到中。然后,
通过承诺将值解析到中。如果仍有疑问,请告知我们
loadpage() { //this part is in your loadpage
this.storage.get('link').then((val) => {
this.performWebRequest(val); //this
//or performWebRequest(JSON.stringify(val)) depending on the value stored
console.log('Your link is', val);
});
}
performWebRequest(weblink) {
this.http.get(weblink)
.timeout(2000)
.map(res => res.json())
.subscribe(data => {
this.mainContact = data;
this.storage.set("mainContact", JSON.stringify(data));
},
err => {
this.connectionAlert();
});
}
在performWebRequest(weblink)上获取类型脚本错误时显示“;”预期。我要试着把这个记录下来。但我明白你的意思。当我开始工作时,我会接受答案。谢谢你的帮助。@ThomasDegroot,考虑到typescript,我刚刚更新了代码段。。没什么大不了的,只是存储get请求在loadpage函数中,并且这个.webrequest
。是的,我提出了类似的想法,但是你的答案比我的更清晰。非常感谢你的帮助。