Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从Promise中获取解析数据_Javascript_Promise - Fatal编程技术网

Javascript 如何从Promise中获取解析数据

Javascript 如何从Promise中获取解析数据,javascript,promise,Javascript,Promise,考虑以下代码段: let primise = new Promise((resolve, reject) => { resolve({ x: 10 }); }); setTimeout(() => { // At some moment in the future (Promise is resolved) console.log(promise); }, 200); 现在,这个承诺通过{x:10}解决了。如何使用已解决的承诺访问此数据 检查promise对象

考虑以下代码段:

let primise = new Promise((resolve, reject) => {
    resolve({ x: 10 });
});

setTimeout(() => {
  // At some moment in the future (Promise is resolved)
    console.log(promise);
}, 200);
现在,这个承诺通过
{x:10}
解决了。如何使用已解决的承诺访问此数据


检查promise对象时,我可以看到数据可用作
promise.\u v
,但这看起来不正确。任何帮助都将不胜感激

承诺的全部意义在于,您不必等待任意时间来确定承诺是否得到解决。。。你只要把它钩进去就行了

let promise = new Promise((resolve, reject) => {
    resolve({ x: 10 });
});

...

promise.then(data => {
    // use data here...
});

不,您不能检查承诺(至少不是本机承诺,一些用户地实现确实有可用的同步检查方法)

所以-一如既往-使用
promise.then(v=>console.log(v))
。只有这样,你才能确保诺言得到履行

如果您还想等待200毫秒,请使用另一个超时承诺和
承诺。all
等待这两个承诺:

let promise = Promise.resolve({ x: 10 });

Promise.all([promise, new Promise(resolve => setTimeout(resolve, 200))]).then([v] => {
    // At some moment in the future (and promise is fulfilled)
    console.log(v); // {x: 10}
});
一如既往:
promise.then(console.log)