Nodejs:catch块中的回调函数在try-catch中返回未定义的参数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nodejs:catch块中的回调函数在try-catch中返回未定义的参数相关的知识,希望对你有一定的参考价值。
我在具有try-catch的类中有一个异步函数。当尝试遇到错误时,我想重新调用该函数。
我当前的实现成功调用了catch块中的函数,但是如果连续尝试成功,则返回的结果始终为undefined
。
代码:
class Extractor
constructor(item)
this.item = item
async start()
try
let results = await someApiCallPromise()
this.item.moreData = results
return this.item //<== Upon sequential recall from catch, it always return undefined
catch (err)
if (err == "someError")
await this.start() // <== this.start() recalls successfully
else
//Other error handling method
//Usage
let item =
param1: '1',
param2: '2'
let extractor = new Extractor(item)
extractor.start()
.then(item =>
console.log(item) // <== Always return undefined if recalled from catch block
)
如果从catch块的撤回中发现this.item
,如何返回它?
答案
您必须在return
中进行catch
递归调用:return this.start()
由于您是returning
一个Promise(调用异步函数),因此不需要await
。
以上是关于Nodejs:catch块中的回调函数在try-catch中返回未定义的参数的主要内容,如果未能解决你的问题,请参考以下文章