2016-11-01 11 views
5

'da JavaScript kodu çalıştırılırken yerleşik hata derlemesi JavaScriptCore çerçevesi kullanılarak iOS'ta aşağıdaki javascript kodunu çalıştırıyorum. Javascript kodu tarayıcıda.'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 sadece konsola şey yazdırır Swift uygulanan bir yöntemdir.

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

sorun aşağıdaki hatayı alıyorum olmasıdır: Burada uygulamasıdır

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

Daha ben baskılar kaldırırsanız olmasıdır garip "Geri arama demedi!" ve "Geri arama son!" Kod hatasız çalışır ve "test" yazdırır.

Bu garip davranışla karşılaştınız mı? Promise uygulaması ile bilinen bir hata mı?

cevap

1

Bu, JavascriptCore'un Promise uygulamasında bir hatadır. Apple'da bir bilet açtım ve onaylandı.

Bir geçici çözüm kendi Promise uygulamanızla birlikte gelmektir.

+0

Bu soruna da giriyorum. Promise’in çalışan bir uygulamanız var mı? Ya da Apple'ın cevabının metni bu yüzden kök sorununun nasıl çözüleceğini anlayabilirim? – InkGolem

+0

Birisi merak edilirse, Bluebird'in Promise uygulamasını kullandım ve bir düşüş olarak çalıştı. Tüm sorunlar hemen ortadan kayboldu. – InkGolem