我正在使用webpack和node创建自己的类/库/ sdk。
基本上,它会拍摄一张图像并将其提交给api,然后再执行其他一些无关紧要的耗时功能。
但是因为此submit()
函数是异步的,所以我想添加回调功能,以便用户知道它是否以及何时完成或出错。
下面是我如何看到用户对其进行初始化以及如何收听onSuccess
或onError
回调的一种方式。
客户端Javascript
<button onclick="hsp.submit()" type="button">Submit</button>
-
<script type="text/javascript">
const hsp = new HSP("123");
hsp.onSuccess(function (response) {
console.log(response);
});
hsp.onError(function (error) {
console.log(error);
});
</script>
图书馆
var HSFileReader = require('./helper/filereader');
var api = require('./api');
class HSP {
constructor(product) {
}
async submit() {
try {
//action 1
//action 2
//action 3
// if it reaches the end it has completed call success
} catch (e) {
throw "Error(submit): Failed to submit" + e;
}
}
onSuccess(response) {
}
onError(errors) {
}
}
module.exports = HSP;
因此,在该 async Submit()函数中,我执行3个操作(例如,调用外部api)。如果所有动作都已完成,我想触发此onSuccess回调,以便客户端知道它已完成并获取响应。如果类似地发生任何错误,我想触发onError回调吗?
所以我的问题是假设以上是处理此问题的适当方法,我该如何在我的Submit函数中触发这些回调?
答案 0 :(得分:0)
尝试
var api = require('./api');
class HSP {
constructor(product) { }
async submit() {
try {
//action 1
//action 2
//action 3
// if it reaches the end it has completed call success
return someValue;
} catch (e) {
throw "Error(submit): Failed to submit" + e;
}
}
}
module.exports = HSP;
初始化
<script type="text/javascript">
const hsp = new HSP("123");
const submitOnClick = async () => {
try {
const response = await hsp.submit();
// handle the response
} catch(e) {
// handle the errors
}
}
</script>
和
<button onclick="submitOnClick()" type="button">Submit</button>