فوری متد await fetch در react native

- 4 روز پیش
توسط امیر پاشایی آپدیت شد
امیر پاشایی ( 930 تجربه )
4 روز پیش

سلام دوستان من میخوام از متد fetch که برای ارسال درخواست به سرور استفاده میشه رو به صورت await استفاده کنم ولی این خطا رو بهم میده

error: bundling failed: SyntaxError: C:UsersamirDesktopmyapp
ode_modules
eact-nativescriptssrcApp.js: await is a reserved word (48:21)

کد من:

    try {
      const response = await fetch('http://192.168.1.103:8000/api/articles');
      const responseJson = await response.json();
  console.log(responseJson);

  } catch(error){
       console.error(error);
  }

ممنون میشم راهنمایی کنید.

حسام موسوی ( 105139 تجربه )
4 روز پیش

سلام مقداری کد رو کامل تر بزارید آیا در متد یا تابع async رو مورد استفاده قرار دادید ؟

امیر پاشایی ( 930 تجربه )
4 روز پیش

@hesammousavi

نه async نزاشتم که فهمیدم برای این خطا رو میده و یه سوال دیگه داشتم:

میخوام یک کلاس برای برای درخواست های http درست کنم که هی تو پروژه نگم fetch که کد ها طولانی بشه و میخوام یک تابع برای post درست کنم که اطلاعات json رو برگردونه ولی من هرکار میکنم promise برمیگردونه!
و از await استفاده کردم که باز هم نشد.

آیا راهی هست؟؟؟
کد کلاس api.js

class api{
    url = 'http://192.168.1.103:8000/api/'
    method = '';
    response = {};

    constructor(method){
        this.method = method;
    }

    static method(method){
        return new this(method);
    }

    get(params = {}){
       return fetch(this.url+this.method+this.makeQuery(params))
        .then((response) => response.json())
        .catch( (error) =>{
            console.log(error)
        } )
    }

    post(params = {}){
        return this.request('post', params);
    }

    put(params = {}){
        return this.request('put', params);
    }

    delete(params = {}){
        return this.request('delete', params);
    }

    request(method, params = {}){
        return fetch(this.url+this.method, {
            method: method,
            headers: {
                Accept: 'application/json',
                'Content-Type': 'application/json',
            },
            body: JSON.stringify(params),
        })
        .then((response) => response.json())
        .catch( (error) =>{
            console.log(error)
        } )
    }

    makeQuery(params){
        let query = '?';
        if(Object.keys(params).length){
            Object.keys(params).forEach(key =>{
                query += key + '=' + params[key] + '&';
            });
        }
        return query;
    }

}

export default api;

کد استفاده شده:

    api.method('login')
    .post({
      username: username,
      password: password
    })
    .then(response =>{
    console.log(response);
    });

ولی میخوام به این صورت باشه:

    let response = api.method('login')
    .post({
      username: username,
      password: password
    });

    console.log(response);

آیا راهی وجود داره؟ و یا اینکه چی؟؟

برای ارسال پاسخ باید وارد سایت شوید