如何检测是否使用'await'调用方法返回承诺

时间:2018-12-06 13:07:28

标签: react-native

我编写了一个插件,并且具有相同方法的多个签名:

  • 带有回调:foo(param1, param2, callback)
  • 不带回叫:foo(param1, param2)
  • 承诺:foo(param1, param2): Promise<string>

所以我写道:

function foo(param1, param2, callback) : Promise<string>{
    if(callback){
        fooCallback(param1, param2, callback);
    }else {
        return fooPromise(param1, param2);
    }
}

function fooCallback(param1, param2, callback){
    return RNMyPlugin.foo(param1, param2, callback);
}

function fooPromise(param1, param2) : Promise<string>{
    return RNMyPlugin.foo(param1, param2);
}

function foo(param1, param2){
    foo(param1, param2, null);
}


local.foo = foo;

我的问题是:

我不知道如何检测用户是否调用了我的API foo(param1, param2)await foo(param1, param2)

在第一种情况下,用户要致电:

function foo(eventName, eventValues){/**/}

在第二种情况下:

function fooPromise(param1, param2) : Promise<string>{/**/}

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

你可以

function foo(eventName, eventValues){
    return {
        from: "function"
        returnValue: /*return value here*/
    }
}


function fooPromise(param1, param2){
    return {
        from: "promise"
        returnValue: /*return value here*/
    }
}