使用Promises 时,为什么不能在代码库的其他地方触发resolve
和reject
定义?
我不明白为什么resolve
和reject
逻辑应该在声明Promise的地方本地化。这是疏忽,还是强制executor
参数有好处?
我认为 executor 函数应该是可选的,它的存在应该决定 promise 是否封装了解析。如果没有这样的要求,promise 会更加可扩展,因为您不必立即启动 async。Promise也应该是可重置的。这是一个 1 次开关,1 或 0,resolve()
或reject()
. 有迹象表明,可附接的并行和串行结果众多:promise.then(parallel1)
和promise.then(parallel2)
并且也promise.then(seq1).then(seq2)
但参考特权玩家无法解析/拒绝到交换机
您可以稍后构建结果树,但您不能更改它们,也不能更改根(输入触发器)
老实说,顺序结果树也应该是可编辑的……假设您想在声明许多Promise链之后拼接一个步骤并做其他事情。重建Promise和每个顺序函数是没有意义的,特别是因为你甚至不能拒绝或破坏Promise......