gpt4 book ai didi

javascript - ionic 函数返回对象 t 中的值以及存储在 __zone_symbol__value : 中的值

转载 作者:行者123 更新时间:2023-12-01 02:28:45 31 4
gpt4 key购买 nike

在下面的代码中,我想返回值,但它返回对象:

代码:

console.log(count(id));

count(id,url){

return new Promise(resolve =>
this.http.get(url)
.map(res => res.json())
.subscribe(data => {
console.log(data.count);// it shows 3 and is correct
resolve(data.count);
}));
}
console.log(count(id));

输出是:

{__zone_symbol__state: null, __zone_symbol__value: Array(0)}
__zone_symbol__state:true
__zone_symbol__value:3

最佳答案

一个Promise是一个表示操作最终完成或失败的对象。

它不会立即返回函数的值,它会在调用 resolve 时返回该值。

所以在下面的例子中:

function wait(ms) {
return new Promise((resolve) => {
setTimeout(() => resolve(100), ms);
});
}

如果您执行console.log(wait(1000));,它将记录Promise,即函数返回的对象。要获取您想要的值,您必须等待 Promise 执行,您可以通过两种方式执行此操作:

现代 JavaScript (async/await)

const result = await wait(1000);
console.log(result); // 100

使用然后

wait(1000).then((result) => console.log(result));

另请参阅

关于javascript - ionic 函数返回对象 t 中的值以及存储在 __zone_symbol__value : 中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48487919/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com