从功能中获得履行承诺

时间:2017-09-28 13:45:34

标签: javascript typescript

也许这是一个非常愚蠢的问题但是这里的方法是什么? 我想创建一个函数,它返回到其他函数的履行承诺?

getStorageData(){
    var result = []
    this.storage.get('ipaddress').then(ip => {
        result[0] = ip
        this.storage.get('timestamp').then(timestamp => {
            result[1] = timestamp
            console.log(result)
    })})
    return result
}

控制台输出正常,但我定义的函数的返回值是一个空数组。如何将控制台的输出作为我函数的返回值?

谢谢!

1 个答案:

答案 0 :(得分:0)

这是一个异步函数:

this.storage.get('timestamp').then(timestamp => {
    result[1] = timestamp
    console.log(result)
}

您的脚本需要一些时间才能到达console.log(result)。因此,结果未在您想要返回的位置定义。

您可以在.then()函数的函数体中返回它,如下所示:

this.storage.get('timestamp').then(timestamp => {
    result[1] = timestamp;
    console.log(result);
    return result;
}

注意:不要忘记命令末尾的;