Javascript 承诺等待不同的结果

Javascript 承诺等待不同的结果,javascript,node.js,es6-promise,Javascript,Node.js,Es6 Promise,为什么在第一个arrow函数的流动代码中,我们得到promise resolve value一些数据作为字符串,而在第二个函数中,我们得到promise{'some data'} const ResolveAfter2秒==>{ 返回新PromiseSolve=>{ setTimeoutfunction{ 解析一些数据; }, 2000;} ; }; 异步=>{ 让prom=等待2秒后解决 控制台logprom }; 异步=>{ 让prom=ResolveAfter2秒 等待毕业舞会 控制台l

为什么在第一个arrow函数的流动代码中,我们得到promise resolve value一些数据作为字符串,而在第二个函数中,我们得到promise{'some data'}

const ResolveAfter2秒==>{ 返回新PromiseSolve=>{ setTimeoutfunction{ 解析一些数据; }, 2000;} ; }; 异步=>{ 让prom=等待2秒后解决 控制台logprom }; 异步=>{ 让prom=ResolveAfter2秒 等待毕业舞会 控制台logprom }; 因为wait prom并不修改变量prom所指的内容,它只是等待它所指的承诺得到解决。prom在您登录时仍指承诺。如果要使用promise的结果更新prom,则需要明确执行以下操作:

prom = await prom;
因为wait prom并不修改变量prom所指的内容,它只是等待它所指的承诺得到解决。prom在您登录时仍指承诺。如果要使用promise的结果更新prom,则需要明确执行以下操作:

prom = await prom;

如果您只是在2秒钟后运行ResolveAfter2,那么该函数本身将返回一个承诺。因此prom=2秒后解析;将始终具有作为变量值的承诺。当在resolveAfter2Seconds前写入wait时,您告诉JS在设置变量之前等待函数返回的承诺被解析,然后承诺的返回值被传递给变量

如果您在resolveAfter2Seconds后运行resolveAfter2Seconds,则该函数本身返回一个承诺。因此prom=2秒后解析;将始终具有作为变量值的承诺。在resolveAfter2Seconds前面写入wait时,您告诉JS在设置变量之前等待函数返回的承诺被解析,然后,承诺的返回值被传递给变量

,因为您正在做不同的事情,所以您没有从第二行左侧的承诺中获得结果?Wait不会返回承诺对象。您没有从第二个Wait左侧的承诺中获得结果,因为您正在做不同的事情?wait不返回承诺对象。