Javascript 通过决心,拒绝外在的承诺到内在的承诺

Javascript 通过决心,拒绝外在的承诺到内在的承诺,javascript,ecmascript-6,promise,Javascript,Ecmascript 6,Promise,我有一个基本的承诺代码,如下所示 新承诺(功能(解析、拒绝){ 新承诺(函数(resolveInner、rejectInner){ //做点什么 resolveInner(“已解决的内部承诺”) }).then(函数(msg){ 控制台日志(msg); //做点什么 解决(“从内部解决”) }).catch(函数(msg){ console.log('error'+msg) }) }).then(函数(msg){ 控制台日志(msg) })您的情况似乎非常复杂,因此您可能想重新评估为什么需要这

我有一个基本的承诺代码,如下所示

新承诺(功能(解析、拒绝){
新承诺(函数(resolveInner、rejectInner){
//做点什么
resolveInner(“已解决的内部承诺”)
}).then(函数(msg){
控制台日志(msg);
//做点什么
解决(“从内部解决”)
}).catch(函数(msg){
console.log('error'+msg)
})
}).then(函数(msg){
控制台日志(msg)

})
您的情况似乎非常复杂,因此您可能想重新评估为什么需要这样做,但如果只是简单的实验,您可以通过将适当的解析器传递给函数生成器,在不使用全局变量的情况下解决此问题。例如:

const innerResolve=resolver=>msg=>{
控制台日志(msg);
//做点什么
解析程序(“从内部解析”)
}
新承诺(功能(解决、拒绝){
新承诺(函数(resolveInner、rejectInner){
//做点什么
resolveInner(“已解决的内部承诺”)
}).then(innerResolve(resolve)).catch(函数(msg){
console.log('error'+msg)
})
}).then(函数(msg){
控制台日志(msg)

})
您的情况似乎非常复杂,因此您可能想重新评估为什么需要这样做,但如果只是简单的实验,您可以通过将适当的解析器传递给函数生成器,在不使用全局变量的情况下解决此问题。例如:

const innerResolve=resolver=>msg=>{
控制台日志(msg);
//做点什么
解析程序(“从内部解析”)
}
新承诺(功能(解决、拒绝){
新承诺(函数(resolveInner、rejectInner){
//做点什么
resolveInner(“已解决的内部承诺”)
}).then(innerResolve(resolve)).catch(函数(msg){
console.log('error'+msg)
})
}).then(函数(msg){
控制台日志(msg)

})
我需要承诺使用承诺的现有库。除了在没有外部承诺包装器的情况下承诺之外,还有什么更好的方法吗?如果现有库已经使用了承诺,那么为什么需要承诺呢?需要定制来自此库的响应。在我的应用程序中,需要为自定义响应编写相同的代码。那么,为什么不将其更改为一个位置并返回定制的响应呢。想法?难道你不能简单地执行
externalLib.someFunc().then(customiseResponse).then(doWork)
?我建议创建一个显示更多信息的新问题。我需要承诺使用承诺的现有图书馆。除了在没有外部承诺包装器的情况下承诺之外,还有什么更好的方法吗?如果现有库已经使用了承诺,那么为什么需要承诺呢?需要定制来自此库的响应。在我的应用程序中,需要为自定义响应编写相同的代码。那么,为什么不将其更改为一个位置并返回定制的响应呢。想法?难道你不能简单地执行
externalLib.someFunc().then(customiseResponse).then(doWork)
?我建议创建一个显示更多信息的新问题。!你能发布你的实际代码吗?看起来它有很多毛病。!你能发布你的实际代码吗?看起来它有很多问题。