我的JS设置如下。
App1.js
function x(){
thirdPartyLibrary.performAsyncTask((resultObject, errorObject) => {
// This is a callback function, invoked when performAsyncTask is done.
// I can handle resultObject and errorObject here.
});
}
假设我还有其他文件作为此应用程序的一部分。它们每个都调用x(),并根据对x()的调用结果调用它们自己的handleSuccess()或handleError()函数的版本。
如何构造对x()的调用,以实现此目的?几乎就像我想从App1.js中“监听” performAsyncTask()的结果一样,但是我不确定该怎么做。
最佳答案
如果您需要保留回调(由于非常老的JS客户端或其他原因),则可以将回调作为参数提供给x
:
function x(myCallback) {
thirdPartyLibrary.performAsyncTask(myCallback);
}
// other file:
x((resultObject, errorObject) => {
// handle just like before
});
您甚至可以根据结果将其更改为两个回调。最后只会调用您的一个回调:
function x(successCallback, errorCallback) {
thirdPartyLibrary.performAsyncTask((resultObject, errorObject) => {
if (errorObject) return errorCallback(errorObject);
else return successCallback(resultObject);
});
}
// other file:
x(
function handleSuccess(resultObject) {
// handle success
},
function handleError(errorObject) {
// handle error
}
);