امیر پاشایی
5 سال پیش توسط امیر پاشایی مطرح شد
2 پاسخ

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

سلام دوستان من میخوام از متد 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);
  }

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


ثبت پرسش جدید
حسام موسوی
تخصص : طراح و برنامه نویس
@hesammousavi 5 سال پیش مطرح شد
0

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


امیر پاشایی
تخصص : web developer
@amirpashaie 5 سال پیش آپدیت شد
0

@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);

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


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام