gpt4 book ai didi

javascript:在 promise 解决之前不要返回

转载 作者:行者123 更新时间:2023-11-30 06:51:09 24 4
gpt4 key购买 nike

在我从我的函数返回之前,我需要等到 promise 解决。基本上,我需要同步执行某些操作,而 JavaScript 似乎不喜欢这个想法。

这是一个简单的例子。我有一个返回 promise 的函数,但在另一个 promise 解决之前无法创建 promise 。结果是我的代码如下所示:

const lib = require('lib')

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

return ret_promise

问题是外层的 promise 被创建,然后它立即移动到返回,并返回 undefined 因为 then 还没有执行。我不能将 return 放在 then 中,因为它会从内部箭头函数返回。

我该怎么做?有可能吗?

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

最佳答案

你已经很接近了,你真正需要改变的就是返回原来的 promise ,然后在其中 .then 返回第二个。一旦第二个 promise 解决,从函数返回的 promise 就会解决。

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());

关于javascript:在 promise 解决之前不要返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47143902/

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