针对此函数有看不懂的一些地方,请问大佬可以帮忙解释一下吗?

针对这个函数:

export const runJS = async (
    code: string,
    web = is.main ? activeWindow()?.webContents : electron.webFrame,
): Promise<void> => {
    if (!web) {
        throw new Error('No active window');
    }

    await web.executeJavaScript(code);
};

有几个点看不明白:

  1. 参数:web = is.main ? activeWindow()?.webContents : electron.webFrame, 是一个三段表达式,请问是否调用函数,参数web是:is.main,就变成activeWindow()?.webContents真正传入,传入的不是is.main,就变为electron.webFrame
  2. 返回类型:Promise<void>

是指的返回await func(),都需要使用Promise类型参数是吗?

  1. 返回类型:Promise<void> 这里的<void>作用是什么呢?
    如下有什么区别呢?

    Promise<void> 
    Promise
阅读 169
1 个回答

1.参数web这块的赋值,指的是默认参数。如果外部调用runJS时候,没有传第二个参数,第二个参数默认就是这个三目运算的返回值,其中的is并不是外部传入的,应该是个全局变量。
2.返回类型Promise<void>是因为这个函数是async函数,返回值总会用Promise包裹。
3.Promise<T>中,T表示包裹的数据的类型。如果这里函数返回1,应该是Promise<number>,返回"abc",应该是应该是Promise<string>。这里实际函数没有返回值,所以是viod。

推荐问题
宣传栏