繁体   English   中英

javascript:在答应解决之前不要返回

[英]javascript: don't return until a promise resolves

我需要等到一个诺言解决之后,才能从函数中返回。 基本上,我需要同步执行某些操作,而JavaScript似乎并不喜欢这个想法。

这是一个简单的例子。 我有一个返回承诺的函数,但是直到另一个承诺解决后才能创建承诺。 结果是我的代码如下所示:

const lib = require('lib')

var ret_promise
lib.func1().then(() => {
  ret_promise = lib.func2()
})

return ret_promise

问题在于创建外部承诺,然后立即将其移至返回值,并返回undefined因为then尚未执行。 我不能将return放到then ,因为将要发生的一切就是从内部箭头函数返回。

我该怎么做呢? 可能吗?

注意:我正在使用节点6。我不能使用async/await

亲密无间,您真正需要更改的只是返回原始的诺言,然后在其中。然后返回第二个诺言。 一旦第二个承诺解决,从函数返回的承诺就会解决。

const lib = require('lib')

var ret_promise = lib.func1().then(() => {
  return lib.func2()
})

return ret_promise

可以简化为

const lib = require('lib');

return lib.func1().then(() => lib.func2());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM