postMessage()

时间:2016-12-08 02:54:23

标签: nativescript

在工作线程中,当我调用postMessage()将消息发送回主线程时 - 它不允许单个参数签名。

e.g。 postMessage({success:true});

VisualCode正在显示postMessage的所需签名(any,string,transfer?);

我有要求('全局');在工作文件的顶部。

这是我到目前为止所做的:

require('globals'); // necessary to bootstrap tns modules on the new thread

onmessage = function(msg)
{
    var request = msg.data;
    var data = request.data;
    var result = "OK";

    var message : any = result !== undefined ? { success: true, src: result } : { };

    postMessage( message ); // << problem
}

2 个答案:

答案 0 :(得分:2)

这是一个小解决方法,但我设法通过在工作文件的开头添加重新声明的函数签名来修复它在我的应用程序中:

declare function postMessage(message: any);

希望它有所帮助。

答案 1 :(得分:0)

值得一提的是,您所看到的错误很可能是使用TypeScript导致的编译错误。

nativescript workers实现应该只接受当前版本的一个参数。

添加对node_modules/tns_core_modules/webworker.es2016.d.ts的引用,因为它们包含正确的定义