gpt4 book ai didi

javascript - 使用 Promise 无限循环 mocha 动态创建函数

转载 作者:行者123 更新时间:2023-11-28 06:24:14 25 4
gpt4 key购买 nike

8小时后......

不知道发生了什么,但我意识到当我将文件写入项目的根目录时,它陷入了无限循环。在其他任何地方,它都工作得很好。

//更新

仍在努力解决这个问题。错过了 super 碗。我唯一的更新是 writeFileSync 给出了完全相同的错误。

我已经在这个问题上苦苦挣扎了一段时间了。

promiseFunction = [promiseFunction1, promiseFunction2, promiseFunction3].reduce((oldFunction, newFunction)=>{
return function (){
return oldFunction().then(()=>{
return newFunction()
})
}
}

当我尝试测试promiseFunction()时,我得到一个无限的测试循环(直到测试promiseFunction的所有测试都永久触发)

然而,问题是,把一切搞砸的 Promise 函数是 promisify(fs.writeFile)

当我尝试使用不同的 Promise 函数时,例如 promisify(fs.readFile),一切正常。

当我控制台记录 readFile 和 writeFile promise 之间的差异时,有各自的结果:

//readFile

readFilePromise Promise {
_bitField: 67108864,
_fulfillmentHandler0: undefined,
_rejectionHandler0:
Promise {
_bitField: 0,
_fulfillmentHandler0: undefined,
_rejectionHandler0: undefined,
_promise0: undefined,
_receiver0: undefined },
_promise0: undefined,
_receiver0: undefined }

//writeFile

writeFilePromise Promise {
_bitField: 67108864,
_fulfillmentHandler0: undefined,
_rejectionHandler0:
Promise {
_bitField: 0,
_fulfillmentHandler0: undefined,
_rejectionHandler0: undefined,
_promise0: undefined,
_receiver0: undefined },
_promise0: undefined,
_receiver0: undefined }

我根本不明白为什么我会用 writeFile 得到这个无限循环。请大神帮忙。

最佳答案

如果您想要的是一个系列,那么返回一个函数也许不是您想要的。主要是因为什么都不会被调用。相反,利用 promise 链:

[promiseFunction1, promiseFunction2, promiseFunction3]
.reduce((memo, next) => memo.then(next), Promise.resolve());

关于javascript - 使用 Promise 无限循环 mocha 动态创建函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35260936/

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