Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.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 不要等待承诺立即执行和解决_Javascript_Json_Ecmascript 6_Async Await_Promise - Fatal编程技术网

Javascript 不要等待承诺立即执行和解决

Javascript 不要等待承诺立即执行和解决,javascript,json,ecmascript-6,async-await,promise,Javascript,Json,Ecmascript 6,Async Await,Promise,我有一个下游API调用,它基本上是返回一个承诺对象,而不是解析它并在点上执行它。 我是这样称呼下游的: const response = testClient.getSession(sessionId); 当Iconsole.log(response)时,它将作为Promise{}打印,而不是从下游打印所需的结果 由于对异步/等待、承诺等知之甚少,我想知道它属于哪一类?我该如何首先履行承诺,然后完成其余步骤 然而,我找到了一份临时工作,就像这样: response.then(function

我有一个下游API调用,它基本上是返回一个承诺对象,而不是解析它并在点上执行它。 我是这样称呼下游的:

const response = testClient.getSession(sessionId);
当I
console.log(response)
时,它将作为
Promise{}
打印,而不是从下游打印所需的结果

由于对异步/等待、承诺等知之甚少,我想知道它属于哪一类?我该如何首先履行承诺,然后完成其余步骤

然而,我找到了一份临时工作,就像这样:

 response.then(function(result) {
      console.log(result.body);
 });

但理想情况下,我希望将结果存储到响应对象中。请帮助我理解这一点。提前感谢

您所说的临时解决方法实际上是等待任务完成的正确方法。您不能“强制”它被实现,因为代码将以最快的速度执行,并允许您继续工作到那时(这是承诺的要点)——但您可以等待它被实现:

您还应该检查承诺是否被“拒绝”,使用-ie生成错误:

响应。然后(函数(结果){
console.log(result.body);
}).catch(函数(错误){
console.log(错误);
});
使用等待:

异步函数thingy(){ const response=wait testClient.getSession(sessionId); } 要使用“等待并检查错误”,请执行以下操作:

异步函数thingy(){ 试一试{ const response=wait testClient.getSession(sessionId); }捕获(错误){ 控制台错误(error); } } 请注意,在使用
async
时,您通常需要处于一个

承诺的理念是允许您的计划在您等待承诺履行/拒绝的同时继续进行工作-例如,您可能会一次提出多个请求,并且:

Promise.all([
getStuff('one'),
getStuff('two'),
getStuff('n')
]);

您所说的使用临时解决方案实际上是等待任务完成的正确方法。您不能“强制”它被实现,因为代码将以最快的速度执行,并允许您继续工作到那时(这是承诺的要点)——但您可以等待它被实现:

您还应该检查承诺是否被“拒绝”,使用-ie生成错误:

响应。然后(函数(结果){
console.log(result.body);
}).catch(函数(错误){
console.log(错误);
});
使用等待:

异步函数thingy(){ const response=wait testClient.getSession(sessionId); } 要使用“等待并检查错误”,请执行以下操作:

异步函数thingy(){ 试一试{ const response=wait testClient.getSession(sessionId); }捕获(错误){ 控制台错误(error); } } 请注意,在使用
async
时,您通常需要处于一个

承诺的理念是允许您的计划在您等待承诺履行/拒绝的同时继续进行工作-例如,您可能会一次提出多个请求,并且:

Promise.all([
getStuff('one'),
getStuff('two'),
getStuff('n')
]);

这是否回答了您的问题?这回答了你的问题吗?