[英]What is the best way to wrap this node.js snippet in a function?
我有一个这种格式的代码示例:
someFunction(data)
.then(response => {
return response.text();
}).then(text => {
console.log(text)
}).catch(err => {
console.error(err)
});
我想把它塞进我自己的 function 并通过我的代码调用它。
let result = await callSnippet(myData);
这就是我一直在做的……这是最好的方法吗? 我应该在这里使用 promise 吗?
async callSnippet(data) {
let response = null
await someFunction(data)
.then( d=> { return d.text(); })
.then( d=> { response = {success:true, result:d }; })
.catch( d=> { response = {success:false, result:d }; })
return response;
}
您不应该同时使用await
和.then()
。 你应该做的是:
async callSnippet(data) {
let response = null;
try{
var d = await someFunction(data).text();
response = {success: true, result: d};
} catch(e){
response = {success: false, result: d};
}
return response;
}
await
关键字从Promise
检索值,因此您不能在该值上使用.then()
。 但是,您可以通过使用try...catch
语句来实现相同的功能。
通常,如果您正在等待等待事情,您将等待每个步骤而不使用 then。
async callSnippet(data) {
try {
const response = await someFunction(data);
const text = await response.text();
return { success: true, result: text };
} catch (e) {
return { success: false, result: e };
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.