[英]Resolving promise in nodejs server after data comes from another call?
我在节点服务器中有一些承诺,在它们全部解决后,服务器会将其呈现给客户端。 我正在使用Promise.all([ ...
包含了我的一些诺言中的所有数据。
但是,在我的一个诺言解决之前,我现在需要来自另一个呼叫的一些数据。 但是Promise.all
似乎仍在解决我需要的东西之前。
const myPromise = new Promise((resolve) => {
needDataFromThisCall(someInfo)
.then((data) => {
return resolve(sortData(data))
})
.catch((error) => {
//error handle
})
})
.then((resolvedData) => {
return resolvedData;
})
这似乎不是因为最后的工作.then
在resolvedData是undefined
,似乎之前,我进入我得到解决sortData
功能。 return resolve(sortData...
最终不会将其返回值提供给最终的.then
吗?
我该如何真正做到这一点,以便myPromise
在将数据发送到sortData
之后可以解析?
下面的代码工作正常。 假设sortData
是同步函数,则需要解析myPromise
以获得结果。
let someInfo = [2,3,1]; let needDataFromThisCall = info => new Promise(res => setTimeout(()=>res(info), 500) ); let sortData = data => data.sort(); const myPromise = new Promise((resolve) => { needDataFromThisCall(someInfo) .then((data) => { return resolve(sortData(data)) }) .catch((error) => { //error handle }) }) .then((resolvedData) => { return resolvedData; }) myPromise.then(data => console.log('final data', data))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.