Angularjs 将存储项作为字符串而不是对象获取

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) .

使用下面的代码,我试图从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)
        .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
。是的,我提出了类似的想法,但是你的答案比我的更清晰。非常感谢你的帮助。