return promise after multiple then 是 returning undefined
return promise after multiple then is returning undefined
我有一个调用执行 axios get 请求的服务的方法。这 return 是一个 promise.I 然后调用 .then 和 return 响应。当我调用 loadData 时,我得到了一个承诺 returned.
loadData(){
return myService.getData().then(response=>{
//do some stuff
return response;
})
}
当我打电话给
Promise.all([loadData()]).then(function([data]){
console.log([data])
}
console.log
显示了我通过服务加载的数据。
如果我将我的 loadData 方法更改为以下 - 然后在 Promise.all
登录到控制台后我得到未定义。
loadData(){
return myService.getData().then(response=>{
//do some stuff
}).then(res =>{
//do more stuff
return res;
}
}
谁能告诉我我做错了什么;
履行处理程序的 return 值是下一个履行处理程序的输入(或承诺输入)。根据您的描述,您没有 returning 任何您拥有 //do some stuff
:
的地方
loadData(){
return myService.getData().then(response=>{
//do some stuff
return /*something appropriate*/; // <===========================
}).then(res =>{ // <=== it will come through here
//do more stuff
return res;
}); // <========== Added missing ); here
}
调用一个没有 return 任何结果的函数会导致 undefined
,所以这就是为什么 res
是 undefined
。
旁注:您不需要两个履行处理程序(then
处理程序),除非您在第一个中 returning 是一个承诺(或其他可行的)。
我有一个调用执行 axios get 请求的服务的方法。这 return 是一个 promise.I 然后调用 .then 和 return 响应。当我调用 loadData 时,我得到了一个承诺 returned.
loadData(){
return myService.getData().then(response=>{
//do some stuff
return response;
})
}
当我打电话给
Promise.all([loadData()]).then(function([data]){
console.log([data])
}
console.log
显示了我通过服务加载的数据。
如果我将我的 loadData 方法更改为以下 - 然后在 Promise.all
登录到控制台后我得到未定义。
loadData(){
return myService.getData().then(response=>{
//do some stuff
}).then(res =>{
//do more stuff
return res;
}
}
谁能告诉我我做错了什么;
履行处理程序的 return 值是下一个履行处理程序的输入(或承诺输入)。根据您的描述,您没有 returning 任何您拥有 //do some stuff
:
loadData(){
return myService.getData().then(response=>{
//do some stuff
return /*something appropriate*/; // <===========================
}).then(res =>{ // <=== it will come through here
//do more stuff
return res;
}); // <========== Added missing ); here
}
调用一个没有 return 任何结果的函数会导致 undefined
,所以这就是为什么 res
是 undefined
。
旁注:您不需要两个履行处理程序(then
处理程序),除非您在第一个中 returning 是一个承诺(或其他可行的)。