Я запускаю приложение в Ionic3 и пытаюсь отправить информацию об устройстве через http-запрос в мой API, чтобы я мог сохранить его в таблице в моей базе данных SQL.
По-видимому, задачи выполняются асинхронно, а метод SEND перебирает метод storage.get (который получает информацию из ионного хранилища), поэтому он передается как ноль или пусто
Я перечитал некоторые сообщения в Интернете и попытался встроить этот запрос в обещания, но при тестировании он возвращает мне следующую ошибку: «не удается прочитать свойство 'webservice' из неопределенного"
вот мой код:
public sendDeviceInfo(company: string, worker: string)
{
this.storage.get(StorageEnum.PUSH_NOTIFICATIONS_PLAYERID).then(playerId => {
const getDeviceInfo = new Promise((resolve, reject) => {
if(playerId != null && playerId != '' && typeof playerId != 'undefined') {
let param = {
company : company,
worker : worker,
device : {
uuid : playerId
,model : this.device.model
,manufacturer : this.device.manufacturer
,platform : this.device.platform
,version : this.device.version
}
};
resolve(param)
} else {
const err = new Error('Algo deu errado');
reject(err)
}
})
const sendData = function(param) {
let deviceInfoObject = this.webservice.saveDeviceInfo(JSON.stringify(param)).subscribe(response => {
alert(JSON.stringify(response));
this.storage.set(StorageEnum.DEVICE_INFO, param);
}, err => {
alert(JSON.stringify(err));
})
return Promise.resolve(deviceInfoObject)
}
const deviceInfo = function() {
getDeviceInfo.then(sendData)
.then(function(fulfilled) {
alert(JSON.stringify(fulfilled))
})
.catch(err => alert(err.message))
}
deviceInfo();
});
}
Я хочу отправить информацию об устройстве ТОЛЬКО после того, как выполнено storage.get, должен ли я использовать Promise? Может ли кто-нибудь помочь мне с этим?