Xem xét:
class GyroJs {
setGyroPosition(pos) {
if (pos === null || typeof pos === 'undefined') {
throw new Error('The position must be defined');
}
this.pos = pos;
}
constructor() {
const gyroscopePosition = NativeModules.MyGyroModule.gyroPosition();
this.setGyroPosition(gyroscopePosition);
}
}
Giải đáp:
Đoạn mã này luôn luôn gây ra lỗi vì giá trị của gyroscopePosition luôn là một Promise chưa được resolve.
Quan trọng để nhớ rằng cầu nối kết nối JavaScript và mã native là bất đồng bộ. Chúng ta có thể nhận kết quả từ phía này bằng cách truyền vào một callback (không được thực hiện trong ví dụ này) hoặc bằng cách trả về một Promise. Trong trường hợp này, chúng ta cần thêm một cuộc gọi then() sau cuộc gọi gyroPosition() và đặt giá trị vào trong nó.