2016-11-01 11 views
5

Tôi thực thi mã javascript sau trong iOS bằng cách sử dụng khung JavaScriptCore. Mã javascript được trình duyệt.'Lỗi khi biên soạn nội trang' trong khi thực thi mã JavaScript trong JavaScriptCore

var myCallback = undefined; 

*browserify logic* 
{ 
1: [function(require, module, exports) { 

    var q = require('./user'); 

    var p = new Promise(function(resolved, reject) { 
          myCallback = function() { 
           resolved('test'); 
          } 
         }); 

    p.then(function(x) {printFunc('test');}).catch(function(e){printFunc('test2');}); 

    q(); 

    }, { 
    "./user": 2 
    }], 
2: [function(require, module, exports) { 
    function q() { 
     printFunc("Callback called!"); 
     myCallback(); 
     printFunc("Callback called end!"); 
    } 
    module.exports = q; 
    }, {}] 
}, {}, [1]); 

printFunc là một phương pháp thực hiện trong Swift rằng chỉ cần in một cái gì đó để an ủi. Đây là việc thực hiện:

let printFunction : @convention(block) (String) -> String = {input in 
     print("|\(input)|") 
     return "" 
    } 

Vấn đề là tôi nhận được lỗi sau:

|Callback called!| 
Error compiling builtin: Invalid private name '@capabilities' 
|Callback called end!| 

Thậm chí kỳ lạ là nếu tôi loại bỏ các bản in hơn "Callback gọi!" và "Gọi lại được gọi là kết thúc!" mã thực hiện mà không có lỗi và nó in "thử nghiệm".

Các bạn có gặp phải hành vi kỳ lạ này không? Có phải lỗi đã biết với triển khai Hứa hẹn không?

Trả lời

1

Đây là lỗi trong triển khai Hứa hẹn của JavascriptCore. Tôi đã mở một vé tại Apple và nó được xác nhận.

Giải pháp thay thế là đi kèm với triển khai Promise của riêng bạn.

+0

Tôi cũng đang gặp sự cố này. Bạn có triển khai hoạt động của Promise không? Hoặc văn bản phản hồi của Apple để tôi có thể hiểu cách khắc phục sự cố gốc? – InkGolem

+0

Nếu có ai tò mò, tôi đã sử dụng lời hứa của Bluebird và nó hoạt động như một sự sụt giảm. Tất cả các vấn đề ngay lập tức biến mất. – InkGolem

Các vấn đề liên quan