我正在尝试找到一种方法,使用 Fluture 库将 Promise 转换为 Future 来实现函数式编程,使用函数式管道转换数据,然后转换回 Promise,以便我可以利用 await/async 功能。这是一个快速应用程序,我正在使用全局错误处理,如果我在未来的处理流程中捕获错误而没有在未来的处理完成后转换为承诺,我看不到如何利用端点的全局错误处理。
- 我这样想对吗?
- 如果是这样,在调用 encaseP 和后续管道代码后,如何使用下面代码中的 promise 实用程序将其转换回 promise?
- 有没有更好的方法来利用未来的管道,同时仍然向全局错误处理程序发送错误?
- 另外,如果我确实转换为一个承诺,如果我使用等待,我将来也可以访问实际值,我假设是这样吗?
抱歉,如果这是一个不好的问题,我是函数式编程和 Fluture 的新手,我正试图让我的鸭子正确对齐。
const arrayList = [];
arrayList.push({
a: {
b: 1,
c: 2,
d: 3
}
},{
a: {
b: 2,
c: 3,
d: 3
}
})
const findData = (arrayList) => Promise.reject(null)
let total1 = (list) => encaseP(findData)(list)
.pipe(res => res)
.pipe(map(x => x.map(y => ({
a: {
b: y.a.b + 1,
c: y.a.c + 1,
d: y.a.d + 1
}
}))))
.pipe(promise (() => {console.log('do nothing')}) (console.log));
console.log(total1);
total1(arrayList);
当我运行上面的代码时,我收到以下错误:
internal/modules/cjs/loader.js:992 internalBinding('errors').triggerUncaughtException(^
TypeError: promise() 期望它的第一个参数是一个有效的 Future。